Taylor, playing his third match, made 90 off 109 deliveries and was involved in an important 93- run partnership for the third wicket with Joe Root (26) after the tourists lost two wickets for 29 electing to bat first at R. Premadasa Stadium.
Stand-in captain Eoin Morgan hit four boundaries and three sixes for a 47-ball 62 and was out to the last delivery of the innings.
Spinners Rangana Herath, Ajantha Mendis and Tillakaratne Dilshan took three wickets each with Herath returning best figures 3-36.
Sri Lanka leads the seven-match series 2-1
Teams
Sri Lanka: Angelo Mathews (captain), Kusal Perera, Tillakaratne Dilshan, Kumar Sangakkara, Mahela Jayawardene, Lahiru Thirimanne, Jeevan Mendis, Thisara Perera, Dhammika Prasad, Rangana Herath, Ajantha Mendis.
England: Eoin Morgan (captain), Moeen Ali, Alex Hales, Joe Root, James Taylor, Jos Buttler, Chris Woakes, Ravi Bopara, Ben Stokes, Steven Finn, Chris Jordan.