England made it two wins from two in Sri Lanka with an impressive fourth-innings chase, only marred by concerns over Ravi Bopara's fitness and Ian Bell's form.
The tourists successfully reeled in a target of 359 in two sessions against a Development XI, despite leaving first-innings centurions Andrew Strauss and Jonathan Trott in the pavilion in a four-wicket win.
Four other batsmen hit half-centuries, with Kevin Pietersen (52), Bopara (66), Matt Prior (84) and Samit Patel (72) all making valuable contributions but the off-form Bell, who has had a torrid 2012, made just 11 and was conspicuous by his failure.
But England's real concern ahead of Monday's first Test is the number six spot - and the news that a side strain for Bopara is likely to rule him out of bowling in the Test series.
Angelo Perera made 90 not out before Thilina Kandamby declared in the lunch interval with the hosts on 272 for four - a lead of 358.
Bell was given out when Vishwa Fernando appealed for a leg-side caught behind but Pietersen took just 49 balls to reach 50.
He departed moments later, though, bowled for 52 by Tharanga Lokuarachchi but Bopara struck an unbeaten 55 as they went off at tea.
Prior was in fluent form but his fun ended on 84 when he was bowled off the inside edge by Fernando to leave England 248 for four.
Tim Bresnan fell for 14 before Patel became the fourth man to make 50 in the innings and with 10 overs left there were 68 needed for victory.
Patel started to open his shoulders, launching sixes off Sajeewa Weerakoon and Tharanga Lakshitha before the latter upended his off stump but Stuart Broad (17 not out) and Swann, who scored a whirlwind 31 not out, saw their side over the line.
The first Test match between England and Sri Lanka gets underway on March 26.