Vazquez threw his first complete-game shutout in more than six years to lead the Florida Marlins to a 3-0 win against the Washington Nationals.
Lannan (9-13) allowed three runs on eight hits in six innings and lost for the sixth time in seven starts.
"Giving up three runs in six innings is a pretty good day," Nationals manager Davey Johnson said. "We just didn't give him much help."
Lannan, in his fourth full year, has yet to reach double-digit wins in a season. He won eight games last year and nine in 2009 and 2008.
"I can only control what I can control, and that's just going out there and giving the team a chance to win," Lannan said. "The wins are going to come. Even though that 10th win will look good, just go out there and keep on doing what you're supposed to do."
The Nationals ended a five-game winning streak and got more than one man on base in two innings, but baserunning mistakes cost Washington both times.
In the second inning, Rick Ankiel singled with one out. Danny Espinosa followed with a single to left center, but was thrown out trying to stretch it to a double and the inning ended with Ankiel stranded at third.
"To be honest, I wouldn't call it bad baserunning. I think Buck made a good play right there," shortstop Ian Desmond said. "You hate to shoot yourself in the foot a little bit."
Vazquez (11-11) allowed five hits for his eighth career shutout. His last came as a member of the Arizona Diamondbacks in a 1-0 win at Detroit on May 22, 2005.
The Marlins' right-hander threw 104 pitches, struck out seven and did not walk a batter in his 27th career complete game. It was the fourth straight win for Vazquez, who has allowed one run in 29 innings over his past four starts.
"He used a lot more fastballs than I think we're used to seeing from him. He was hitting his spots," Desmond said. "We had a couple situations where we could have scored some runs, but he pitched lights out."
Lannan got into trouble in each of the first three innings. He gave up a single to Emilio Bonifacio to lead off the game and walked the next batter but got out of the inning without allowing a run.
In the second, Lannan walked Gaby Sanchez and Bryan Petersen with one out, then threw a wild pitch before Buck hit a run-scoring single to give the Marlins a 1-0 lead.
"I was missing spots pretty bad," Lannan said. "It was just one of those starts where I just didn't have location. I don't know if it's overthrowing. I just didn't have my best stuff tonight."
The Marlins had baserunning trouble of their own as they tried to add an insurance run in the ninth. With one out and runners on the corners, Matt Dominguez grounded to third. Bonifacio was caught in a rundown between third and home, and after he was tagged out catcher Wilson Ramos threw to second to catch Stanton for the double play.
Notes: Nationals OFs Jayson Werth and Michael Morse were given the day off as Roger Bernadina (cut on left hand) and Laynce Nix (strained right groin) returned to the starting lineup. Nix had been limited to pinch-hitting duties since Sept. 1 and Bernadina last started on Sept. 4. ... Nationals RHP Stephen Strasburg (0-0) will make his third start Saturday since returning from Tommy John surgery. He will go against Marlins RHP Chris Volstad (5-12).