Colombo: Jonny Bairstow, restored to the side but shorn of his keeping gloves, hit a fluent 110 to guide England to 312 for seven at stumps on the opening day of the third and final test against Sri Lanka on Friday.
The wicketkeeper missed the series opener in Galle with an ankle injury and the brilliant batting and neat glovework of his replacement Ben Foakes kept Bairstow out of England's series-clinching victory in Pallekele.
The fiery 29-year-old, batting at number three for the first time, hit 110 off 186 balls to help England - who have already won the series - reach 235-3 after tea.
But Sri Lanka fought back to restrict them to 312-7 at the close.
England lead the three-Test series 2-0.
However, the hosts' rally, led by Lakshan Sandakan taking 4-91, has left the Test finely poised. Pushpakumara claimed two wickets.
Brought back in the dead rubber as England's fifth candidate batting at number three in as many tests, Bairstow added 100 with Joe Root and 99 with Ben Stokes to rescue the tourists, who were 36-2 at one stage in the morning session.
Stokes overcame his occasional discomfort against the spinners. He scores 57 runs off 88-ball. He hits five boundaries and two sixes.
Earlier, Root continued what has become almost a test match ritual of late when the England captain won his eighth successive toss before electing to bat.
However, off-spinner Dilruwan Perera soon drew first blood for Sri Lanka when he hit the top of Rory Burns's off-stump to dismiss the opener for 14.
Malinda Pushpakumara drove home the early advantage in his first over when Keaton Jennings (13) tickled the left-arm spinner to Roshen Silva, who had been stationed at leg slip precisely for that purpose.
Bairstow used his feet against the spinners and swept them with confidence, the best illustration being when he slog-swept Pushpakumara over the square-leg boundary for an effortless six.
Root's usual composure deserted him after lunch when he fluffed a slog-sweep attempt against wrist-spinner Lakshan Sandakan and was caught at midwicket to depart for 46.
The tourists brought in seamer Stuart Broad for the rested James Anderson, while Bairstow replaced injured all-rounder Sam Curran.
Suranga Lakmal continued to lead the hosts in absence of regular skipper Dinesh Chandimal, who has not recovered from a groin injury.