NEW YORK -- The New York Mets had better watch out for guys named Willie. Or Willy. Or any other variation of the name.
Willie Harris made a game-ending diving catch to yet again thwart a Mets rally, well-traveled Willy Taveras drove in a career-high four runs and the Washington Nationals beat New York 4-3 on Saturday.
"It was a lot of tension on both sides of the field," Nationals manager Jim Riggleman said, exhaling in the clubhouse afterward.
John Lannan (1-1) teetered on the brink of disaster, giving up three runs in five erratic innings, before Tyler Clippard set down nine of the 10 batters -- seven strikeouts -- he faced. Matt Capps came on to close it out for Washington, but he sure made it an adventure.
After a leadoff single by Jose Reyes, Capps loaded the bases with a pair of walks. Batting with two outs, Rod Barajas lined a hard shot to left, but Harris came charging in on a dead run to snare the ball just before it hit the outfield grass.
"Once he hit it, my mind was made up -- 'Willie, go make this happen," Harris said.
It was the third time Harris helped save a game against the Mets. In 2007, with Atlanta, he leaped above the wall to rob Carlos Delgado of a tying homer in the ninth inning, and two years ago he robbed Ryan Church of extra bases with a diving grab in the ninth inning to maintain Washington's 1-0 lead.
"Anybody else in that situation, there's a good chance the ball falls in," Barajas said. "They put him in the right spot."
Barajas whirled around in frustration when the ball was caught, while Capps pumped his arm to celebrate his second save of the season. The Nationals poured from the dugout, with Taveras joining in the party.
The speedy outfielder singled and tripled in his first start for the Nationals, who signed him to a minor league contract in February after Oakland let him go. The A's had acquired him about a week earlier from Cincinnati, making it three teams in less than a month.
"I don't take anything personally. I'm glad I'm here," said Taveras, who showed up at camp unsure whether he'd even make the roster. "Every day, I'm just trying to do my best. Anything you can do to help the team win games."
The intrepid New York fans who came out on a chilly, windy April afternoon didn't have much to cheer about besides Reyes, and even that stopped once the game began.
The All-Star shortstop was in the lineup for the first time since May 20, after a stubborn hamstring injury last season required surgery and a hyperactive thyroid kept him out part of spring training. He went 1 for 4 from the leadoff spot and didn't fare much better in the field, committing an error in the sixth when he whiffed on a liner right at him.
"I feel happy I played a whole game without a problem," Reyes said. "I was a little shaky in the field. I just missed that ball. I should catch that ball, no question."
Mets starter Oliver Perez (0-1) was his typical, mercurial self, setting Washington down in order in the first before running into trouble in the second. He loaded the bases with two outs for Taveras, who scorched a liner into left-center to make it 2-0.
New York loaded the bases in its half of the inning, and Henry Blanco drove in a run with a sacrifice fly before Perez hit an RBI blooper that evened the score.
The Mets loaded the bases again the next inning, but the kind of bad luck that seemed to follow them all last season struck again. Jeff Francoeur nubbed a pitch into the dirt in front of the plate, and catcher Ivan Rodriguez stepped on home before firing to first for the rare 2-2-3 double play. Gary Matthews Jr. ended the inning with a ground out to first.
Taveras added his two-run single in the fourth that made it 4-2, and although the Mets managed a run in the fifth, they couldn't figure out the Nationals bullpen.
"I did everything I can, but I have to be very happy with that," said Perez, who allowed all four runs in 5 2-3 innings. "I feel very good about the pitching, but we didn't win."
NOTES: Washington 3B Ryan Zimmerman left the game as a precaution in the sixth inning with a tight left hamstring. Riggleman said he may give him a couple days off. ... The Nationals plan to activate former Mets RHP Livan Hernandez to start the series finale Sunday. ... The Mets optioned SS Ruben Tejada to Triple-A Buffalo to create a roster spot for Reyes.
James Paxton, Boston Red Sox agree to 1-year, $10 million deal, sources say
Left-hander James Paxton and the Red Sox are in agreement on a one-year, $10 million contract with a two-year club option, sources said.
Raisel Iglesias, Los Angeles Angels agree to four-year deal, source says
Closer Raisel Iglesias and the Angels have agreed to a four-year contract, a source told ESPN's Jeff Passan.
Major League Baseball, players union no closer to deal with collective bargaining agreement set to expire, sources say
Major League Baseball and the players union are no closer to a new collective bargaining agreement with the expiration of the current one looming, sources said.
Baltimore Orioles reach 1-year deal with veteran 2B Rougned Odor
The Baltimore Orioles have agreed to a one-year deal with second baseman Rougned Odor.
Gio Urshela reaches $6.55M deal with New York Yankees; Domingo German agrees to $1.75M
Infielder Gio Urshela agreed to a $6.55 million, one-year contract with the Yankees on Tuesday, while starting pitcher Domingo German agreed to $1.75 million and pitcher Lucas Luetge to $905,000.
Miami Marlins acquire Joey Wendle, send Kameron Misner to Tampa Bay Rays
The Marlins have acquired third baseman Joey Wendle from the Rays for prospect Kameron Misner.