Marcus Johansson and Keith Aucoin also scored for the Capitals, who carried a 4-0 lead into the final period. Michael Neuvirth had 28 saves for Washington.
Colby Armstrong and Tim Connolly scored third-period goals as Toronto lost its fourth straight overall and fourth in a row on home ice — earning plenty of boos from the Air Canada Centre crowd.
James Reimer stopped 32 shots for the Maple Leafs.
The Leafs fell flat in their final outing before the trade deadline, even getting pinned in their own zone for a minute-long stretch during the second period. With Monday's trade deadline looming and the Leafs in a 1-7-1 slide, tension is high in Toronto.
The players have responded to trade questions by saying they need to focus on doing their job in games — but it hasn't translated into success.
Johansson opened the scoring just 32 seconds in with a wraparound that took Reimer by surprise. Semin made it 2-0 just over 3 minutes later by stripping defenseman Luke Schenn of the puck and beating Reimer through the legs.
Reimer made a few strong saves early in the second period — denying Matt Hendricks and Jason Chimera on odd-man rushes — to keep the Leafs in it. Reimer also turned away a couple chances just before Halpern extended the lead to 3-0 with 8:29 to go in the second.
Aucoin picked up his first goal of the season on a tic-tac-toe passing play with Johansson and Ovechkin with 4:57 to go in the middle session.
Toronto tried to mount an unlikely comeback in the third — Armstrong picked up his first goal in a year and Connolly banked a shot in from behind the net — but Neuvirth buckled down and secured the victory.
Notes: Mike Komisarek and Joey Crabb sat out for Toronto ... Matt Frattin had plenty of jump after being called up from the Toronto of the AHL ... The Caps continue to scratch veterans: 37-year-old defenseman Roman Hamrlik missed a third straight game, while 39-year-old forward Mike Knuble sat out for the fifth time this month ... Ovechkin has 42 points (23-19) in 26 career games against Toronto.