Sri Lanka beat Australia by four runs in a tense one-day international that went down to the final ball in Colombo on Tuesday to take an unassailable 3-1 lead in the five-match series.
Put into bat, Sri Lanka's top order failed to get going as they slumped to 34-3 but Charith Asalanka (110) and Dhananjaya de Silva (60) stitched together a 101-run partnership to give the hosts a respectable total of 258.
Asalanka came in and smashed 10 fours and a six for his maiden ODI century before Pat Cummins finally dismissed him at the death when the batsman was caught by skipper Aaron Finch as he tried to clear the deep midwicket boundary.
In response, Sri Lanka made the perfect start when Finch was dismissed for a duck but his opening partner David Warner looked well set to score his 19th ODI hundred before he fell agonisingly short.
Warner hit 12 fours before he was stumped on 99 off the bowling of Dhananjaya de Silva thanks to lightning-quick work behind the stumps from Niroshan Dickwella.
Australia's middle order were unable to capitalise on starts but fast bowler Cummins threatened to help Australia level the series with a knock of 35 before he was trapped leg before wicket by Chamika Karunaratne in the penultimate over.
Needing 19 off the final over, number 10 batsman Matthew Kuhnemann smashed three boundaries before Dasun Shanaka kept his nerve on the final ball to have him caught in the covers and see Sri Lanka over the line.
The final ODI will also be played in Colombo on Friday before Australia play two tests in Galle starting June 29.