Bangladesh's attempt to end their world record losing streak ended in embarrassing failure as they suffered a 60-run defeat by Canada.
The Tigers had looked on course to end a four-year run of 26 one-day defeats as they restricted Canada to a total of 180 in Durban.
But their run chase floundered under the lights at Kingsmead as they slumped from 76-4 to 120 all out.
Austin Codrington was Canada's most potent bowler with five wickets for 27 runs, and Davis Joseph and John Davison took two apiece.
It was a stunning result from a country which had lost all three games on its only previous appearance at the World Cup - scoring the competition's lowest score of 45 on the way.
We are a greedy bunch of Canadians - we'd like to win another match
Canada captain Joseph Harris
Bangladesh began well as Davison was the first Canadian batsman to fall with just 18 runs on the board.
Ishwar Maraj and Desmond Chumney briefly took the attack to Bangladesh before they were dismissed in quick succession.
Ian Billcliff, who has played provincial cricket in New Zealand, then hit a defiant 42 before he was needlessly run out.
Codrington and Joseph put on a useful 21-run partnership for the final wicket before Codrington was brilliantly caught by Tapash Baisya on the boundary with five balls to spare.
We batted and bowled badly - it is now going to be difficult to bounce back
Bangladesh captain Khaled Mashud
Bangladesh stayed well within the required run rate after a flying start from Al-Sahariar and Hannan Sarkar.
But the alarm bells were ringing as they lost two wickets in two overs to slump to 46-3.
They reached the 100 mark with six wickets to spare but the collapse began in earnest when Sanwar Hossain, Alok Kapali and captain Khaled Mashud were dismissed in successive overs.
Codrington then had Mashrafe Mortaza and Tapash caught in the slips by Fazil Sattaur in the space of three balls before picking up the final wicket of Mohammad Rafique to give Canada their first ever World Cup victory.
Canada: Joseph Harris (capt), Ishwar Maraj, John Davison, Desmond Chumney, Ian Billcliff, Nicholas de Groot, Fazil Sattaur, Ashish Bagai, Sanjayan Thuraisingham, Austin Codrington, Davis Joseph.
Bangladesh: Khaled Mashud (capt), Al-Sahariar, Hannan Sarkar, Habibul Bashar, Ehsanul Haque, Sanwar Hossain, Alok Kapali, Mohammad Rafique, Mashrafe Mortaza, Tapash Baisya, Manjural Islam.
Umpires: Aleem Dar and B G Jerling.