England fell an agonising eight runs short of a brilliant run chase and will face Sri Lanka in a Royal London Series decider despite Jos Buttler's memorable maiden international century at Lord's.
Buttler's wonderful 121 was a worthy response to Kumar Sangakkara's hundred for the tourists, and carried England to within a whisker of an astounding victory.
After Sangakkara had powered the tourists to 300 for nine, largely in partnership with Tillakaratne Dilshan (71), England stumbled badly in pursuit of their joint second-highest run chase in this format.
But Buttler and Ravi Bopara (51) refused to give up in a stand of 133, having joined forces for the sixth wicket with 190 runs still required at more than nine an over.
Bopara passed 50 at better than a run a ball despite just one boundary, before mis-sweeping to fine leg off Ajantha Mendis.
Buttler, who had a solitary escape on 74 when Lahiru Thirimanne could have run him out with a direct hit, stayed the course until he was run out in the final over.
His 61-ball hundred, the fastest in international cricket at HQ, included an over from Nuwan Kulasekara which brought 20 - and he hit 11 fours and four sixes in all.
It was cruel on him that he should just run out of time as England finished on 293 for eight, and therefore must head for Edgbaston on Tuesday with the series level at 2-2.
Lasith Malinga had reduced England to 10 for two, needing just one delivery each to dismiss openers Alastair Cook and Ian Bell.
Yorkshire pair Joe Root and Gary Ballance began the recovery in a hard-working partnership of 84.
In contrast to what was to follow, the third-wicket pair mustered just three boundaries - and none, in fact, was struck between the ninth and 31st over.
It was only when Buttler and Bopara combined that England found an effective counter to Sangakkara's outstanding hundred.
Their prospects were far from obvious even before Malinga's full-length swing and searing pace won an lbw verdict against Cook, albeit with the assistance of DRS.
Bell then tried to take the bat away but instead edged to slip.
Ballance had a DRS reprieve on nought, technology demonstrating he had not edged behind after all when given out off Kulasekara.
He eventually went caught-behind for 42, off the face of the bat trying to reverse-sweep Mendis - and with Root also gone, mistiming a pull to fine leg off Angelo Mathews on 43, and Eoin Morgan stumped off Sachithra Senanayake it seemed Buttler and Bopara could surely only make things respectable at best.
Buttler in particular most certainly did that with an innings full of power and, when required, finesse as he found boundaries from the unlikeliest angles.
Sangakkara had earlier dominated his partnership with Dilshan en route to the first hundred of his illustrious career at the home of cricket.
England might have been chasing many more had they not fought back well with the ball, despite Sangakkara's 19th ODI hundred.
The veteran number three began patiently - it took him 13 balls to get off the mark - but went on to bat on a different level to his team-mates, including Dilshan, with some expert footwork and placement for his 14 fours.
Harry Gurney, with a international best four for 55, and Chris Jordan then each took two wickets in their final overs as the late trade-off marginally favoured England.
Kusal Perera, replacing Dinesh Chandimal on the sheet but in Thirimanne's opening position, began the Sri Lanka innings with successive boundaries in James Anderson's first over.
He added a pulled six off Gurney but, trying to thrash the left-armer to leg again, toe-ended a looping catch to slip where Jordan dived to his left to hold on.
Sangakkara gathered momentum with three fours from consecutive deliveries off Root - straight past the bowler, over mid on and then through cover after Cook had brought the sweeper in as he juggled his field to protect other areas.
Sangakkara and Dilshan milked England's fifth bowler - Root and Ravi Bopara combined - but the opener lost his leg stump to Anderson, moving across his crease again to try to manufacture a fine sweep.
That was one of two wickets for 24 in the powerplay - this was not Mahela Jayawardene's day - but Sangakkara completed his 95-ball century before he was stumped on the charge from the first delivery of the impressively economical James Tredwell's final over.
It then fell principally to captain Mathews to ensure Sri Lanka did not squander a perfect platform - which he did well enough, with a run-a-ball 30 - to ultimately stop Buttler sneaking the verdict.