Bangladesh made the perfect start to their World Cup campaign as their highest One-Day International score inspired a 21-run win over a beleaguered South Africa on Sunday. Mashrafe Mortaza's side posted 330 for six as Mushfiqur Rahim (78) and Shakib Al Hasan (75) laid the foundations of their impressive display at the Oval. Mahmudullah's boisterous 46 not out from 33 balls pushed Bangladesh past their previous highest One-Day International total of 329 for six against Pakistan in 2015. Attempting to become the first team to successfully chase more than 330 to win a World Cup match, South Africa's bid to rewrite the record books fell short at 309 for eight. Proteas skipper Faf du Plessis scored 62 from 53 balls, but Bangladesh seamer Mustafizur Rahman took three wickets and economical spinners Shakib and Mehidy Hasan wrapped up a memorable victory. After reaching the World Cup quarterfinals in 2015, Bangladesh once again look capable of shaking up cricket's established order, much to the delight of their army of vociferous supporters who packed the Oval. "It will be one of our top wins," said Shakib at the presentation ceremony. "We have done some upsets at World Cups but we want to prove something at this tournament." In contrast, South Africa are in turmoil after du Plessis' decision to bowl first backfired despite two wickets from veteran spinner Imran Tahir in his 100th ODI appearance. With the World Cup just four days old, they have already lost twice in south London — this disappointing performance coming hot on the heels of their 104-run thrashing by hosts England in the tournament opener. South Africa, who have never won the World Cup, are left with little margin for error in the rest of the 10-team group stage, which sees each country play nine matches. It won't get any easier for Du Plessis' troubled side in their next match when they face title contenders India on Wednesday. Quinton de Kock and Aiden Markram needed to get South Africa's chase off to a fast start and they reached 49 before a disastrous blunder sent them spiralling towards defeat. De Kock was run out for 23 after being rashly called for a single by Markram, whose partner's edge was fumbled by Mushfiqur before the wicketkeeper recovered to throw out the opener. That brought du Plessis to the crease and together with Markram he put on 53 in 60 balls. But Shakib curtailed that partnership when his perfectly-flighted delivery bowled Markham for 45 to leave South Africa 102 for two in the 20th over. That made Shakib just the fifth player to score 5,000 runs and take 250 wickets in ODIs. Du Plessis got to fifty off 45 balls, reaching the milestone with a six off Mosaddek Hossain. But that blast got du Plessis' adrenaline flowing too fast and a charge at Mehidy saw him bowled after he misjudged the flight. David Miller's lofted shot was dropped by Soumya Sarkar at mid-off and he escaped again when Mahmudullah couldn't grab his mistimed drive. However, Miller's luck ran out when he was caught by Mehidy off Mustafizur for 38 to leave the Proteas in disarray. The required run-rate was at 10 an over by the time Rassie van der Dussen's agricultural swipe saw him bowled by Mohammad Saifuddin for 41. Saifuddin removed Andile Phehlukwayo to push South Africa to the brink and when JP Duminy was bowled by Mustafizur for a defiant 45, Bangladesh's jubilant fans could get the party started. South Africa captain Faf du Plessis won the toss and fielded, but his decision backfired badly as Bangladesh put his lethargic bowling attack to the sword. Thrashed by a 104 runs in their first match against England on Thursday, South Africa, deprived of key batsman Hashim Amla due to a head injury suffered in that loss, faced a daunting task to avoid a second successive defeat. Tamim Iqbal was fit to open the batting after a wrist injury, but it was Soumya Sarkar who hit the first boundary, his flick off Lungi Ngidi bringing a huge roar from Bangladesh fans who made up the majority of the crowd at the Oval, the south London headquarters of Surrey. Those green-shirt clad Bangladesh supporters were back on the feet as Tamim and Soumya, who hit five fours in six balls at one point, brought up their fifty partnership in just seven overs. After conceding 27 in two overs, the barrage took its toll on Ngidi, who fielded a Tamim shot and petulantly threw at the stumps, forcing the Bangladesh opener to fend it away in self-preservation. Moments later, Ngidi trudged from the pitch, reportedly suffering from a tight hamstring. In his first over, South Africa's Andile Phehlukwayo broke the partnership with 60 on the board when he induced an edge from Tamim that was held by wicketkeeper de Kock. Soumya had made a dazzling 42 in 30 balls when his aggression got the better of him with a miscued hook off Chris Morris that was well caught by the diving de Kock. With part-time bowlers Aiden Markram and JP Duminy filling in for the absent Ngidi and Dale Steyn sidelined again by a shoulder injury, South Africa's bowling attack was hardly threatening as Shakib reached his fifty with ease. Du Plessis was visibly frustrated, gesticulating angrily as Shakib and Mushfiqur took their partnership past a hundred runs. Imran Tahir delivered a desperately needed breakthrough on his 100th ODI appearance, the 40-year-old spinner breaking the 142-run stand when he bowled the sweeping Shakib. Mushfiqur perished after a risky slog off Phehlukwayo to leave Bangladesh on 250 or five in the 43rd over. But after going six overs without a boundary, Bangladesh finished their innings with a flourish thanks to powerful stroke-play from Mahmudullah (46 not out) and Mosaddek Hossain (26). Scores Bangladesh Tamim Iqbal c De Kock b Phehlukwayo 16 Soumya Sarkar c De Kock b Morris 42 Shakib Al Hasan b Tahir 75 Mushfiqur Rahim c van der Dussen b Phehlukwayo 78 Mohammad Mithun b Tahir 21 Mahmudullah not out 46 Mossadek Hossain c Phehlukwayo b Morris 26 Mehedi Hasan not out 5 Extras (lb9, w12) 21 Total (six wickets, 50 overs) 330 Did not bat: Mohammad Saifuddin, Mashrafe Mortaza, Mustafizur Rahman Fall of wickets: 1-60 (Iqbal), 2-75 (Sarkar), 3-217 (Shakib), 4-242 (Mithun), 5-250 (Mushfiqur), 6-316 (Mossadek) Bowling: Ngidi 4-0-34-0; Rabada 10-0-57-0 (3w); Phehlukwayo 10-1-52-2 (3w); Morris 10-0-73-2 (2w); Markram 5-0-38-0; Tahir 10-0-57-2; Duminy 1-0-10-0. South Africa Q. de Kock run out (Mushfiqur) 23 A. Markram b Shakib 45 F. du Plessis b Mehidy 62 D. Miller c Mehidy b Mustafizur 38 R. van der Dussen b Saifuddin 41 JP Duminy b Mustafizur 45 A. Phehlukwayo c Shakib b Saifuddin 8 C. Morris c Soumya b Mustafizur 10 K. Rabada not out 13 I. Tahir not out 10 Extras (b4, nb1, w9) 14 Total (eight wickets, 50 overs) 309 Did not bat: L Ngidi Fall of wickets: 1-49 (De Kock), 2-102 (Markram), 3-147 (Du Plessis), 4-202 (Miller), 5-228 (Van der Dussen), 6-252 (Phehlukwayo), 7-275 (Morris), 8-287 (Duminy) Bowling: Mustafizur 10-0-67-3 (2w); Mehidy 10-0-44-1; Saifuddin 8-1-57-2 (1nb, 2w); Shakib 10-0-50-1; Mortaza 6-0-49-0; Mossadek 6-0-38-0 (1w).