The right-hander agreed to a three-year deal with the Nationals, the club announced Friday.
The pact is worth $24 million, sources told Ken Rosenthal of The Athletic.
"I felt like the whole process was kind of trending toward the Nationals maybe from the beginning," Harris said, according to Brian McTaggart of MLB.com. "They seemed to be the most bullish on me."
Harris was one of the Astros' most trusted relievers during his time in Houston, averaging 62 appearances per year - 297 total innings - during the last five seasons. Harris is coming off the best season of his eight-year career, as he posted a 1.50 ERA, 0.93 WHIP, and 62 strikeouts in 60 innings.
Houston used Harris heavily last postseason. He logged 9 2/3 innings over 11 appearances, posting a 1.64 ERA while striking out 11. Harris appeared in five games during the World Series, with the only two runs he allowed coming in Game 7 when Howie Kendrick took him deep in the seventh inning.
The Nationals were in need of bullpen help with Daniel Hudson hitting free agency. Harris was excellent in high-leverage situations last season, holding opposing hitters to a .229/.270/.286 slash line and just two extra-base hits to go along with 20 strikeouts across 75 plate appearances.