Zimbabwe 182 (41.5 overs) lost to Sri Lanka 256-5 (50 overs) by 74 runs
Sri Lanka skittled out Zimbabwe's tailenders in East London to set up a semi-final clash with Australia.
Andy Flower was given out lbw to Aravinda de Silva for 38 in his last innings for Zimbabwe - despite getting a thick inside edge - to spark the collapse.
Marvan Atapattu was the star of Sri Lanka's innings as he carried his bat to finish on 103 not out on a slow track.
42nd over: Chaminda Vaas bowls Douglas Hondo to end the match.
41st over: Marvan Atapattu pouches captain Heath Streak in the deep, while Sanath Jayasuriya catches Grant Flower off his own bowling to leave Zimbabwe staring at the abyss. Zimbabwe 181-9.
40th over: Vaas claims his first wicket, clean bowling Ervine for 12 to leave Zimbabwe in deep trouble. Zimbabwe 178-7.
39th over: Grant Flower hammers a superb reverse sweep to the boundary off Muralitharan.
38th over: Grant Flower gives Zimbabwe hope, closing the over with a big four off Dilhara.
37th over: Ervine gets lucky with an edge off Muralitharan which reaches the boundary.
36th over: Sri Lanka's grip on the last semi-final spot is tightening all the time as just one run comes from the over.
35th over: Some poor fielding from Sri Lanka sees Zimbabwe take six runs off the over.
34th over: New bowler Dilhara cannot believe his luck as Blignaut hits a full toss straight into the hands of De Silva. Zimbabwe 151-6.
33rd over: Muralitharan strikes as Taibu is bowled through the gate for just two. Zimbabwe 150-5.
32nd over: A single from Taibu brings up the 150 but the required rate is now approaching a run a ball.
31st over: Grant Flower eases the pressure for Zimbabwe with a big four off De Silva.
30th over: Just one run comes from the over as Sri Lanka begin to sense victory could be theirs.
29th over: Andy Flower's last innings for Zimbabwe comes to an end as he is trapped lbw by Aravinda de Silva for 38. TV replays show a thick inside edge. Taibu is then lucky to survive a caught-and-bowled chance. Zimbabwe 140-4.
28th over: Vaas returns to the Sri Lanka attack and gets Grant Flower to play and miss in a tight over.
27th over: More easy runs as the Flowers favour risk management rather than big hitting.
26th over: The Flower brothers work the ball around as the singles come easily.
25th over: Zimbabwe are right on course as they reach the halfway point of their innings on 129-3.
24th over: Grant Flower hits his first boundary as six runs come from the over.
23rd over: Grant Flower is put under immediate pressure by Muralitharan after joining brother Andy at the crease.
22nd over: Sri Lanka make a big breakthrough as Wishart is clean bowled by Jayasuriya. Zimbabwe 111-3.
21st over: Muralitharan goes for just three runs in another tidy over.
20th over: Zimbabwe keep the run rate up with some quick singles.
19th over: Wishart chips Murali into the air but the ball lands safely.
18th over: A single from Wishart brings up the 100 for Zimbabwe.
17th over: Wishart and Andy Flower work De Silva around the ground for five more runs.
16th over: Muralitharan makes his entrance with a probing over which costs just three runs.
15th over: Wishart hits De Silva safely over the top for two as Zimbabwe keep their run rate on course.
14th over: Andy Flower drives through the covers for his first boundary.
13th over: Flower survives an lbw appeal off De Silva as he begins his final innings for Zimbabwe.
12th over: Friend pulls a short ball from Gunaratne to the boundary for four - and is promptly bowled. Zimbabwe 68-2.
11th over: Sri Lanka introduce the spin of De Silva, whose first over costs just three runs.
10th over: Wishart survives Gunaratne's appeal for a catch by De Silva at leg slip.
9th over: Friend hits two boundaries off Vaas as Zimbabwe bring up the 50 in quick time.
8th over: Gunaratne keeps a tight line to restrict Zimbabwe to just two from the over.
7th over: Wishart escapes with an edge off Vaas which goes wide of wicketkeeper Sangakkara for four. De Silva then misses a catching chance off Friend.
6th over: Gunaratne deceives Marillier with a slower ball and Jayasuriya does well to hold a high catch. Zimbabwe 36-1.
5th over: Vaas bowls his first good over as Zimbabwe are restricted to just three runs.
4th over: Marillier escapes as he steers a Gunaratne bouncer just over Muralitharan at backward point for four.
3rd over: Zimbabwe's flying start continues as they pick up four overthrows - and another boundary from Wishart.
2nd over: Gunaratne is dispatched twice to the boundary as his first over goes for nine runs.
1st over: Wishart hits an early four off Vaas as Zimbabwe make a trouble-free start.
50th over: Atapattu reaches 100, his 10th one-day international century, as Sri Lanka poach 12 off the last over. Keeper Taibu drops Atapattu off a skier with the last ball.
49th over: Atapattu creeps to 98 not out.
48th over: Russell Arnold holes out to Grant Flower at point off Douglas Hondo. Sri Lanka 234-5
47th over: Grant Flower catches Kumar Sangakkara for 35 in the deep off Heath Streak. But nine runs come off the over. Sri Lanka 231-4
46th over: Hondo comes back on for Zimbabwe but Sri Lanka are in the swing of things and keep the run rate ticking over.
45th over: Sri Lanka step on the gas and smash another 13 runs off Ervine.
44th over: Sangakkara tries to force the pace and is fortunate to find the gaps. The batsmen also survive an attempted runout as 10 come off the over.
43rd over: Hondo drops Sangakkara in the deep off Ervine as nine runs come from the over.
42nd over: Sangakkara joins Atapattu and moves quickly on to four.
41st over: Ervine strikes in his first over as De Silva snicks the ball straight into the gloves of wicketkeeper Taibu. Sri Lanka 175-3.
40th over: De Silva hits another boundary to take his partnership with Atapattu on to 50.
39th over: Atapattu dispatches a bad ball from Marillier to the boundary as the over costs eight runs.
38th over: De Silva sees a sweep off Grant Flower float over the top of wicketkeeper Taibu.
37th over: De Silva profits from a misfield to claim his first four but is denied another one by a brilliant stop on the boundary.
36th over: Atapattu hits Grant Flower over the top for four to end a long spell without a boundary.
35th over: Marillier twice beats the bat as Atapattu tries to steer the ball backward of square.
34th over: De Silva makes a confident start as Sri Lanka take five runs from the over.
33rd over: De Silva and Atapattu rotate the strike with some easy singles.
32nd over: De Silva joins Atapattu at the crease in an attempt to get the scoreboard ticking over.
31st over: Zimbabwe finally make the breakthrough as Gunawardene gives a return catch to bowler Marillier. Sri Lanka 124-2.
30th over: Sri Lanka need to accelerate the scoring but Grant Flower gives up just two runs off the over.
29th over: Marillier keeps Sri Lanka tied down with some more economical bowling.
28th over: Grant Flower has an lbw appeal against Gunawardene turned down in another tight over.
27th over: Gunawardene escapes with an outside edge which just eludes backward point and trickles to the boundary.
26th over: The run rate has dropped again as Grant Flower's fourth over goes for just three.
25th over: Sri Lanka reach the halfway point of their innings on 105-1.
24th over: Atapattu brings up the 100 for Sri Lanka as he approaches his half-century.
23rd over: Another tidy over from Marillier goes for just three runs.
22nd over The Atapattu/Gunawardene partnership is far from spectacular but they are scoring at around a run a ball.
21st over: Atapattu has a couple of anxious moments against the spin of Marillier.
20th over: Zimbabwe introduce the spin of Grant Flower
19th over: Sri Lanka's best over so far takes their run rate above four.
18th over: Sri Lanka accelerate their scoring rate with runs off every ball of the over.
17th over: Hondo's first over goes for just three runs.
16th over: Taibu misses a catching chance when a snick from Atapattu off new bowler Friend just eludes his outstretched glove.
15th over: Gunawardene clips the ball round the corner for two but that is all Sri Lanka get.
14th over: Atapattu cuts for four as he and new batsman Gunawardene take the score on to 50.
13th over: Zimbabwe claim the prized wicket of Jayasuriya as the Sri Lanka captain clips a seaming delivery from Streak straight to wicketkeeper Taibu. Sri Lanka 41-1.
12th over: Jayasuriya dispatches Blignaut's first ball to the boundary but can do nothing with the next five.
11th over: Sri Lanka inject some urgency with seven off the over.
10th over: Three runs come from the over. At this rate Sri Lanka will make just 145.
9th over: The pressure builds on the Sri Lanka openers as Streak gives up just a single.
8th over: Jayasuriya gets a top edge off Blignaut which lands just short of Douglas Hondo on the boundary and Atapattu survives an appeal for caught behind.
7th over: Another tidy over from Streak goes for just two runs.
6th over: Atapattu survives a scare as he almost chops a ball from Blignaut on to his stumps.
5th over: Jayasuriya continues his patient approach, rotating the strike with some easy singles.
4th over: Atapattu accelerates the run rate with two fours off Blignaut.
3rd over: Sri Lanka's slow start continues as they take just one run off the over.
2nd over: Blignaut gets some early encouragement as Jayasuriya plays and misses.
1st over: Atapattu and Jayasuriya both get off the mark in a tidy first over from Streak.
Sri Lanka: Sanath Jayasuriya (captain), Marvan Atapattu, Avishka Gunawardene, Hashan Tillakaratne, Aravinda de Silva, Russel Arnold, Kumar Sangakkara, Chaminda Vaas, Muttiah Muralitharan, Dilhara Fernando, Pulasthi Gunaratne.
Zimbabwe: Doug Marillier, Craig Wishart, Travis Friend, Andy Flower, Grant Flower, Tatenda Taibu, Andy Blignaut, Stuart Matsikenyeri, Heath Streak (captain), Sean Ervine, Douglas Hondo.
Umpires: B G Jerling and R E Koertzen.