Through the first six innings, Zimmermann (2-5) was nearly perfect, allowing just two baserunners on a walk and a double in the second inning. He had retired 13 straight.
Nick Markakis singled to start the seventh and Guerrero sent an 0-2 curveball into the left-field stands for his fifth home run of the year and a 2-1 Orioles lead.
"I tried to bounce a curveball and it just hung up a little bit. He got a big barrel on it," Zimmermann said. "He's a tough hitter to pitch to. You just have to mix it up. Throw balls in the dirt, throw high and in. You just have to pretty much mix it up and hope for the best."
While Zimmermann hoped for the best, it didn't turn out that way. Guerrero's home run was just the third he has allowed in 54 1/3 innings this season.
"I was looking for a good pitch to hit and just to make contact, and not for a home run. But I hit it out," Guerrero said through a translator.
Orioles manager Buck Showalter credits Guerrero with bringing a great passion for the game to his team.
"He walks through the door like he's playing his first game in Little League -- the zest he has," Showalter said. "He doesn't give you that 'too cool to get excited about something.' He's genuinely excited about coming out and playing every day."
Routed 17-5 in the opener Friday night, the Orioles bounced back to take two of three in the Beltway Series.
Zimmermann walked Luke Scott with two outs in the second and Mark Reynolds followed with a double to center. After that, the right-hander retired 13 straight before Markakis' single. He allowed four hits in 6 1/3 innings, striking out five and walking one.
Guerrero had two or more hits in each of his previous seven games -- the longest such streak of his career. But he hadn't homered since April 28. Over the last 11 games, he's raised his average 40 points to .309.
"Every day I'm feeling a lot better. I'm looking at my videos almost every day and I'm feeling more comfortable," Guerrero said.
"Kevin's got great timing to the plate," Wieters said. "So normally if you make a good throw, you are going to have a pretty good chance to get him."
Chris Tillman started and pitched five innings for Baltimore, allowing a run and six hits.
The Nationals' only run came in the fourth after Jayson Werth led off with a double. Wilson Ramos walked and, with one out, Tillman hit Danny Espinosa with a pitch. With two outs, Alex Cora hit a ball off Tillman's right leg for an infield single that scored Werth.
Bernadina flied out to end the inning.
While the Orioles offered no run support for Tillman, he was fortunate to leave with only a single run against him. Washington was 1 for 8 with runners in scoring position while he was in the game.
Nationals manager Jim Riggleman was ejected in the first inning when Bernadina, the leadoff batter, was called out for making contact with the ball outside the batter's box. Bernadina had reached first on a bunt. "I didn't even have an argument. I was just irritated that the call was made," Riggleman said. "The call was right but it's a call you never see get made." ... Washington 1B Adam LaRoche was out of the lineup with a sore left shoulder. He's in a 1-for-29 slump. Riggleman said LaRoche would be checked out Monday. ... Orioles LHP Brian Matusz, on the disabled list all season because of a strained rib cage muscle, threw 70 pitches in six innings for Double-A Bowie on Saturday. Matusz will throw again Tuesday. Showalter hinted that Matusz would make another rehab start before he's activated. ... Wieters' 10-game hitting streak ended.