|Font Size -||-A+A|
England reached 154 for one wicket at stumps on the second day in reply to Sri Lanka's first innings of 275.
Cook was unbeaten on 77 with Jonathan Trott 15 not out.
Strauss, whose poor form was under scrutiny, was caught behind for 61 as he tried to cut a delivery from spinner Tillakaratne Dilshan that was too close to his body.
Cook faced 227 balls and hit seven boundaries, while Strauss' 126-ball innings included four boundaries.
England is now in a position to push for a series-equaling victory, which the team needs to retain its No.1 spot in the test rankings.
Earlier, England offspinner Graeme Swann and seamer James Anderson shared seven wickets as Sri Lanka added only 37 runs for four wickets on Tuesday.
Swann had figures of 4-75 while Anderson returned 3-62.
Sri Lanka resumed on the second day on 238-6, and Swann dismissed overnight batsmen Suraj Randiv and Anjelo Mathews quickly to give the tourists the edge. Mathews hit 57 off 157 balls for his eighth test half-century.
The pair had put on a promising 31-run partnership for the seventh wicket when Randiv lofted a delivery from Swann and was caught by Kevin Pietersen in the deep.
Sri Lanka lost its last specialist batsmen when Mathews was caught by Strauss at short mid-wicket with the total on 261.
On Tuesday, Sri Lanka captain Mahela Jayawardene scored his 31st test hundred to rise to eighth in the list of highest century-makers in test history. His effort helped Sri Lanka recover from a precarious 30-3 after Anderson had ripped through the top order.
Jayawardene shared 124 runs for the fourth wicket with Thilan Samaraweera (54) and added 62 more with Mathews to lift his team.