Lannan (4-5) allowed two runs and four hits to win his second consecutive start and earn his first win at home since Aug. 5, 2009, against Florida. The left-hander, Washington's opening-day starter the last two seasons, is 2-0 with a 3.00 ERA in three starts since he returned from the minors.
"It was definitely necessary for me to go down there and work on stuff," said Lannan, who improved to 3-1 with a 1.04 ERA in four career starts against Arizona.
Lannan went 1-4 with a 4.20 ERA with Harrisburg, but Washington manager Jim Riggleman got positive reports about his improvement. Lannan said he was working on "hiding the ball more -- being more deceptive."
Diamondbacks third baseman Mark Reynolds said he saw a different pitcher.
"Normally he leaves a lot of hittable balls over the plate," Reynolds said. "He just had one of those games where he was hitting the corners and not leaving much to hit."
The Nationals scored three in the first and Wil Nieves hit his second homer of the season in the second to make it 4-0. Zimmerman had a two-run single and Michael Morse snapped an 0-for-13 slide with an RBI single.
Saunders tossed a five-hitter in Arizona's 6-1 victory against Washington on Aug. 3, but the lefty allowed 10 hits over six-plus innings in this one.
"I think they knew it was going to be around the strike zone," Saunders said. "It was just a matter of me rushing, falling and flying open."
Riggleman held a pregame meeting and implored his players to continue doing their best -- despite the slide. His message was aided by the fast start.
"The runs we got early really helps loosen people up. I think people saw that John was really himself," Riggleman said.
Arizona RHP Juan Gutierrez, on the 15-day disabled list with right shoulder inflammation, will throw batting practice Saturday, manager Kirk Gibson said. Gutierrez is 0-6 with a 6.69 ERA. ... Drew's triple was his eighth, tied for the major league lead. ... Washington Capitals coach Bruce Boudreau attended the game. When he was shown on the scoreboard, Boudreau jokingly tried to hide by pulling his cap over his face. A moment later he doffed it and acknowledged the crowd's applause. ... Nationals LF Josh Willingham was 0 for 3 and is mired in a 3-for-25 slump.