Orioles closer Alfredo Simon left in the 10th after injuring his right leg while running to first base to cover on a grounder for the first out. Simon was replaced by Cla Meredith (0-2), who allowed Willingham's eighth homer, a drive to left-center on a 2-1 pitch.
It was Washington's first win in four extra-inning games this year.
Baltimore tied it in the ninth when Capps was unable to protect a 3-1 lead for his first blown save in 17 chances.
With one out, Capps allowed an infield single by Luke Scott and a double by Adam Jones. Matt Wieters hit an RBI groundout before Julio Lugo hit an RBI single to right.
Doug Slaten (2-0) pitched a perfect 10th inning.
After the Orioles scored a first-inning run on Tejada's 4-6-3 double-play grounder, Roger Bernadina put the Nationals ahead in the bottom of the inning with a bases-loaded triple.
Washington loaded the bases on Nyjer Morgan's single, Cristian Guzman's successful drag bunt and a hit batter before Bernadina's hit a two-out triple to center. Jones couldn't snag Bernadina's fly ball as he crashed into the wall.
Baltimore starter Kevin Millwood allowed three runs on eight hits in 6 1-3 innings, walking one and striking out eight. John Lannan, the Nationals' starter, yielded a run on two hits in 5 1-3 innings, walking three and striking out two.
NOTES: Before the game, the Nationals recalled OF Justin Maxwell from Triple-A Syracuse. ... Orioles RHP Koji Uehara had his ailing right elbow examined by a team doctor prior to Sunday's game. There's still no word whether Uehara will need to be placed on the disabled list. ... Washington rookie RHP Drew Storen got a hit in his first major league at-bat, a sixth-inning single to left.