Moeen Ali trapped Mathews LBW in the first over after tea to end the senior batsman's solid resistance that had kept alive Sri Lanka's hopes of chasing down a target of 301.
Leach struck soon to get Dilruwan Perera for one when torrential rain halted proceedings for the day with Sri Lanka on 226 for seven in Kandy.
The hosts, who trail the three-match series 0-1, need another 75 to win with three wickets and three sessions in hand. Niroshan Dickwella was batting on 27 when play was stopped.
Leach has claimed four wickets with his left-arm orthodox spin while Ali has taken two on a turning pitch.
Mathews, who hit his third half-century of the series, took crease with Sri Lanka on a shaky 26-3.
The former captain played a gritty innings that lasted 137 deliveries and also built crucial partnerships.
His 73-run fifth wicket stand with Roshen Silva (37) frustrated the English spinners in the afternoon session.
Ali had Silva caught behind with a faint edge. The umpire had given Silva not out before England successfully reviewed the decision in their favour.
Leach had rattled the Sri Lankan top-order with three early wickets after the tourists were bowled out for 346 in the morning session.
Left-handed opener Dimuth Karunaratne then put on 77 runs with Mathews before falling to Adil Rashid for 57.
England, who had resumed the day on 324-9, stretched their second innings lead to 300 with overnight batsman Ben Foakes hitting an unbeaten 65.
Foakes, who hit a ton on debut in Galle, added 14 to his overnight 51 and shared 41 runs for the last wicket with James Anderson (12).
adil rashidBen FoakesDilruwan PereraDimuth KarunaratneEngland vs Sri Lanka 2018Moeen Aliniroshan dickwellasri lanka vs england 2018
First Published: November 17, 2018, 5:14 PM IST