Sri Lanka survived a woeful batting collapse to beat Afghanistan by 34 runs in a rain-shortened World Cup thriller on Tuesday. The 1996 World Cup champions limped to 201 all out in the 37th over as Afghanistan grabbed nine wickets for 57 runs to give themselves a chance of pulling off a shock win. Afghanistan needed a rain-revised target of just 187 from 41 overs but they failed to gain any momentum in their run chase and completely lost their way after opener Mohammad Shahzad’s dismissal in the fifth over led them to losing five wickets for just 23 runs. After Afghanistan were reduced to 57-5, a partnership of 64 by Najibullah Zadran and captain Gulbadin Naib gave them hope. But fast bowler Nuwan Pradeep grabbed two quick wickets before Najibullah was run out by Dimuth Karunaratne for 43. That set up a tense finale as the last two batsmen needed to score another 42 runs to hand Afghanistan their first World Cup win against a Test-playing nation. But Sri Lanka made sure that victory did not come at their expense as Lasith Malinga bowled Hamid Hassan with a yorker four balls later. Pradeep was the pick of the Sri Lankan bowlers as he claimed a career best four wickets for 31 runs as Afghanistan were bowled out for 152 in the 33rd over. Brief scores: Sri Lanka 201 (Kusal Perera 78, Mohammad Nabi 4-30) beat Afghanistan 152 (Najibullah Zardan 43, Nuwan Pradeep 4-31, Lasith Malinga 3-39) by 34 runs (via DLS method).