Sri Lanka denied Afghanistan a famous victory by winning a low-scoring thriller in the World Cup at Cardiff.
After a dismal batting collapse by Sri Lanka, Afghanistan needed a rain-revised target of just 187 from 41 overs but were beaten by 34 runs.
Afghanistan slipped to 57-5 in their chase but a partnership of 64 by Najibullah Zadran and captain Gulbadin Naib gave them hope.
But Nuwan Pradeep returned and took two quick wickets before Najibullah was run out by Dimuth Karunaratne for 43.
That left the final pair needing 42 more to win but Lasith Malinga bowled Hamid Hassan with a trademark yorker four balls later.
Sri Lanka had earlier gone from 144-1 to 201 all out – a collapse sparked when Mohammed Nabi took three wickets in the 22nd over.
Victory would have been Afghanistan’s second at a World Cup and first against a Test-playing nation at the tournament.
Instead, Sri Lanka earn their first win of the 2019 World Cup.
Sri Lanka’s batsmen also failed in their opening match when they were bowled out for 136 by New Zealand, and at the halfway stage in this game they were facing a second embarrassing defeat.
But on this occasion, albeit against lower-quality opposition, their bowlers rescued them.
They made mistakes at times – bowling 17 extras – but for the large part they bowled accurately and did not allow Afghanistan to race away chasing a small target.
Pradeep was the pick of the bowlers in a career-best 4-31, including the crucial wicket of Afghanistan skipper Gulbadin, lbw for 23 after a nervy wait for a review, and the dismissal of all-rounder Rashid Khan, bowled for two with a perfect delivery that clipped the off bail.
Malinga was not at his best early on but he returned and bowled two perfect yorkers, deliveries which he has repeated many times throughout his 15-year career and proved too good for Afghanistan’s number nine Dawlat Zadran and 10 Hamid Hassan.
Sri Lanka also produced two excellent pieces of fielding which proved crucial.
Thisara Perera took an excellent diving catch at fine leg to dismiss dangerous opener Hazratullah Zazai for 30 and Karunaratne hit the stumps direct from mid-off to run out Najibullah.
The result will be even more disappointing for Afghanistan, given the way they had dragged themselves back into the game and how Sri Lanka had crumbled with the bat.
Early on Afghanistan were ill-disciplined, with a number of misfields and wayward bowling – 17 of the first 52 runs were extras, and Sri Lanka were allowed to reach 92-0 from 13 overs and 144-1 from 21.
The 17th over lasted 10 balls and cost 19 runs, Afghanistan captain Gulbadin Naib bowling two no balls and two wides.
But the innings changed when opener Lahiru Thirimanne played on to Nabi in the 22nd over before Kusal Mendis and Angelo Mathews then both edged their second balls to slip within the rest of the off-spinner’s over.
Sri Lanka’s batting then became increasingly hair-brained. Big-hitting number seven Thisara pushed the ball straight to extra cover, set off for a single and was run out and Isuru Udana foolishly tried to slog a ball for six and was bowled.
The game was then halted for almost three hours because of rain but after the resumption Afghanistan quickly finished off the Sri Lanka innings.
In reply, Hazratullah tried to take the attack to Sri Lanka early but, after he fell, they lost wickets regularly with only Gulbadin and Najibullah offering resistance.
Najibullah had batted well but fell trying to keep the strike with a single off the final ball of the 32nd over.
Afghanistan may well look back on the extras conceded with the ball as crucial – they conceded 35 and lost by 34 runs.