Washington's Lars Eller appeared to score to start the fifth round, but a video review showed his shot hit the post and crossbar without going over the goal line. Two rounds later, Horvat beat Braden Holtby with a wrist shot for the win.
Elias Pettersson scored for Vancouver (12-8-4), which has won two in a row and ended a four-game losing streak against Washington. Jacob Markstrom made 32 saves.
WATCH: [All Canucks vs. Capitals highlights]
"It's one of those positions you want to be in," Horvat said of having a chance to win the shootout. "You want to be there in the big moments. [Markstrom] was phenomenal in the shootout, and I wanted to be the one to win it for him. So, I was happy I got to go and happy it went in."
Jakub Vrana scored, and Holtby finished with 32 saves for the Capitals (16-4-5), who are 0-1-1 in their past two games.
"Braden was outstanding I thought all game," Capitals coach Todd Reirden said. "Gives us a chance and right through the shootout gave us a chance. Tough to only get one point, but we'll take it and move on."
Washington defenseman John Carlson's point streak ended at eight games.
The Canucks were 1-for-5 on the power play and were unable to score on the man-advantage during overtime. The Capitals were 0-for-3.
"It's not easy, especially against that power play. They're pretty lethal," Horvat said. "They've got a lot of firepower over there, so for our PK to step up like they did tonight, and our best [penalty-killer] has to be our goalie, and he was tonight."
Vrana gave the Capitals a 1-0 lead with a one-timer from the left circle at 2:22 off a pass from Eller.