England have levelled the series with Sri Lanka at 1-1 after winning the second Test in Colombo by eight wickets.
Alastair Cook and Kevin Pietersen guided the tourists to their modest target of 94 to retain England's status as the number one ranked side in the world.
Graeme Swann had earlier completed his five-wicket haul by claiming two further scalps to dismiss Sri Lanka for 278 in their second innings.
The off-spinner picked up the key wicket of the hosts' captain Mahela Jayawardene for 64 and then wicketkeeper Prasana Jayawardene soon after to record figures of 106-6.
Samit Patel came into the attack and had Rangana Herath caught behind before Steven Finn finished off the innings by having Angelo Mathews caught for 46.
With the Sri Lankans only able to add 60 to their overnight score, England were left with only 94 to chase down in order to win the match.
However, they suffered an early scare when Andrew Strauss was bowled by Tillekeratne Dilshan in the first over.
Jonathan Trott was then trapped lbw by Herath for 5, leaving England at 31-2 but the top two scorers from England's first innings stabilised the innings.
Cook [49*] and Pietersen [42*] saw the tourists home, with the latter hitting a six to end the game.
The result means that the two-match series finishes level at a Test apiece.