After a great show with the bat, Bangladesh bowlers rose to the occasion to inflict a 21-run defeat on South Africa in their World Cup opener at the Kennington Oval on Sunday.
Chasing an imposing target of 331 set by Bangladesh, the Proteas could manage 309/8 in the allotted 50 overs, thus losing their second match in the World Cup in as many games.
For the winners, Mustafizur Rahman returned with figures of 3/67 and Mohammad Saifuddin scalped 2/57 while Mehidy Hasan and Shakib Al Hasan picked up one wicket apiece.
Despite a decent start by South Africa, the Bangladesh bowlers kept on jolting the opposition at regular intervals. Chasing a big target after Bangladesh posted their highest ever ODI total of 330/6, openers Quinton de KOck (23 off 32) and Aiden Markram (45 off 56) started on a cautious note as the Proteas scored 27 runs in the first five overs.
But just when the partnership looked like developing, a confusion between the openers resulted in de Kock's departure as he was run out in the 10th over with 49 runs on the scoreboard.
Faf du Plessis (62 off 53) and Markram then repaired the damage, adding 53 runs for the second wicket in the next 10 overs as South Africa touched the three-digit mark in 19th over.
However, Shakib then came with the breakthrough for Bangladesh as the spinner castled Markram, leaving their opponents at 102/2.
du Plessis was then joined by David Miller (38 off 43) and the duo stitched together 47 runs before the former became a victim of Mehidy Hasan in the 27th over, soon after notching up his half-century with a six. du PLessis' knock was laced with five boundaries and a hit into the stands.
Jean-Paul Duminy (45 off 37) and Miller then kept the scoreboard ticking as they took South Africa past the 200-run mark in the 35th over. But in the very next over Mustafizur applied the brakes on Miller's knock after his leading edge was safely collected by Mehidy Hasan at point.
South Africa then lost the wickets of Rassie van der Dussen (41 off 38), Andile Phehlukwayo (8) and Chris Morris (10) in the space of 73 runs as Bangladesh bowlers kept up the good work. While Duminy tried his best to keep South Africa in the hunt, Mustafizur once again came to his side's rescue by packing back the southpaw in the 48th over, thus ending the Proteas' hopes of notching up an unlikely victory.
Earlier, Bangladesh rode on a record 142-run third wicket partnership between Mushfiqur Rahim and Shakib to post their highest ever ODI total of 330/6, bettering their previous best of 329/6 which came against Pakistan in Dhaka in 2015.
While Bangladesh were on top for much of the innings, Imran Tahir's spell between the 35th and 40th over helped the Proteas slow down the run rate before a late burst from Mahmudullah helped them get close to the 350-run mark.
Put into bat, Bangladesh stamped their authority early on as Soumya Sarkar took the attack to the opposition. He shared a 60-run opening partnership with Tamim Iqbal (16) before the latter fell to Andile Phehlukwayo in the ninth over. Sarkar (42) was dismissed shortly thereafter, but South Africa were then put under the pump by Shakib and Mushfiqur.
The pair restricted themselves to singles and doubles and rarely went for flashy shots. Their partnership of 142 is Bangladesh's highest for any wicket in the World Cup. South Africa did not help their cause either by making mistakes on the field, and soon the batting side looked set for a 340-plus total.
Imran Tahir put the breaks on the stand by claiming Shakib's (75) wicket in the 36th over
Mohammad Mithun (21) then played an entertaining cameo before becoming Tahir's second victim of the day.
The runs soon dried up after Mushfiqur (78) fell to Phehlukwayo. However, Mosaddek Hossain (26) and Mahmudullah (46*) then put up a quickfire 66-run stand that boosted Bangladesh's score to 330/6 at the end of the 50 overs.
Brief scores: Bangladesh 330/6 in 50 overs (Mushfiqur Rahim 78, Shakib Al Hasan 75,; Andile Phehlukwayo 2/52) beat South Africa 309/8 in 50 overs (Faf du Plessis 62, J.P. Duminy 45; Mustafizur Rahman 3/67) by 21 runs.