Craig Stammen pitched into the eighth inning and Willingham backed him with a tiebreaking two-run homer as the Nationals beat the New York Mets 3-1 on Wednesday night for their second straight victory.
"That's how you start winning streaks and how you play winning baseball," said Willingham, who was 0-for-14 since the break before getting a season-high four hits. "It starts with pitching."
It's the Nationals' first winning streak under interim manager Jim Riggleman, who took over when Manny Acta was fired July 13. Washington lost its first five games under Riggleman before beating the Mets 4-0 on Tuesday night behind John Lannan.
"Two wins in a row -- you can't beat that," Stammen said. "Last time John threw a complete game, I went out and gave up five runs in the first inning. It was in my head -- you know what, I'm going to get a good outing here. ... It's not really relief because I knew I could do it. It's satisfying because I came out and did my job."
Stammen (3-5) allowed one run and four hits over 7 1/3 innings. He retired the first 12 batters before David Wright led off the fifth with a single to center.
"We haven't really torn the cover off the ball, but I think it's just indicative of what can happen if you pitch and play defense," Riggleman said. "Sometimes you can win games without a lot of offense."
Willingham's 13th homer gave the Nationals a 3-1 lead in the sixth. Adam Dunn led off with a liner to right that turned into a double when Jeff Francoeur lost it in the lights. After Nick Johnson grounded out, Willingham drove a 2-1 slider over the fence in left-center.
New York has scored one run or been shut out in 12 of 27 games since All-Star center fielder Carlos Beltran went on the disabled list on June 22, going 10-17 and falling 10 games behind NL East-leading Philadelphia. The Mets are last in the majors over that span with 81 runs and a .231 batting average.
"What happens is that when you are in the situation we are in, every team we play, because [we're] deficient of talent, every team we play is going to be in the game," Mets manager Jerry Manuel said.
New York totaled just one run in the last two games against the Nationals, whose 5.09 ERA is the highest in the NL and 29th in the majors, ahead of only Cleveland.
"We're not going to be able to go out there and score runs at will," Wright said. "We really have to be clicking on all cylinders to score runs and obviously right now we are not."
Stammen left after pinch-hitter Jeremy Reed doubled and Angel Pagan walked in the eighth. Jason Bergmann got Fernando Tatis to foul out to first and Joe Beimel retired Daniel Murphy on a fly ball to end the inning. Mike MacDougal then worked a 1-2-3 ninth for his sixth save in six tries.
Washington had last won consecutive games July 4-5.
Mike Pelfrey (7-6) gave up three runs and six hits over seven innings, but lost for the third time in four starts. The Mets have dropped five of seven.
The Nationals took a 1-0 lead in the fourth on Ronnie Belliard's sacrifice fly.
The Mets responded in the sixth when Pagan sliced a two-out triple into left-center and scored when shortstop Cristian Guzman's wild relay got past third.
Washington placed rookie RHP Jordan Zimmermann on the 15-day DL with right elbow discomfort and announced that RHP Collin Balester would be recalled from Triple-A Syracuse to start Thursday's game against St. Louis. ... New York 2B Luis Castillo was ejected in the second inning by umpire Hunter Wendelstedt for arguing a safe call on a close forceout play at second. Castillo was charged with an error for mishandling 3B Wright's throw. It was Castillo's first career ejection. ... Mets OF Gary Sheffield was unavailable again because of a hamstring problem, and Manuel said the team would decide Friday whether Sheffield needs to be placed on the DL. ... Washington's Nyjer Morgan was caught stealing for a major league-leading 14th time in the first inning.