Updated

WASHINGTON (AP) — Scott Olsen took a no-hitter into the eighth inning, pinch-hitter Willie Harris delivered the winning RBI single in the ninth, and the Washington Nationals beat the Atlanta Braves 3-2 Thursday night.

After reliever Eric O'Flaherty (1-1) walked Adam Kennedy leading off the ninth, Peter Moylan came in and gave up a double to Ryan Zimmerman, then intentionally walked Cristian Guzman to load the bases with no outs. Harris then grounded a single past diving second baseman Martin Prado.

The Nationals raced from their dugout to celebrate on the field, mobbing Harris near first base.

Tyler Clippard (4-0) got the final five outs after Olsen departed. The starter allowed only two hits, none until David Ross' clean single to left with one out in the eighth.

Tim Hudson pitched quite well, too. During his seven innings, Hudson allowed only five hits, but two were homers: solo shots by Ivan Rodriguez in the fifth inning, and by Adam Dunn in the seventh.

Olsen, who had surgery on his pitching shoulder in July, faced only one batter above the minimum through seven innings. The lone at-bat standing between the lanky lefty and a perfect game at that point was a walk to Melky Cabrera leading off the third.

During spring training, Olsen's velocity was down in the low-80s mph. But the speed of his fastball has been gaining ground, and he was reaching the low 90s on Thursday. That helped his breaking balls be quite effective, and he repeatedly fooled hitters with a slider that moved across the plate perfectly.

Olsen struck out Matt Diaz looking to begin the eighth. And then everything came apart for the pitcher — and his club.

First, Olsen lost his no-hit bid when Ross — a backup catcher in the lineup only because starter Brian McCann got a day off while stuck in a 6-for-31 slump — lined a 1-0 pitch to left field for a no-doubt-about-it single.

The next batter, Melky Cabrera — who entered Thursday with a .195 average but started in right field in place of injured rookie Jason Heyward — hit a smash to third fielded cleanly by Zimmerman. But the throw sailed over second baseman Alberto Gonzalez's head for an error.

Nate McLouth then singled to right, loading the bases and hastening Olsen's departure. Seconds after Heyward was announced as a pinch hitter, manager Jim Riggleman came out to remove his starting pitcher. Olsen's infielders and catcher gathered around the mound to offer fist bumps and glove taps on the backside, while an announced crowd of 17,131 gave him a standing ovation.

The 20-year-old Heyward, already leading Atlanta in homers and RBIs, was given most of the night off because of a sore right groin, but he delivered when called upon, blooping a single to left off Clippard to drive in two runs and tie the game. So that left Olsen charged with two runs — one earned — to go along with the two hits, one walk and eight strikeouts. His scoreless-innings streak was halted at a career-high 20.

With runners at the corners, Clippard got Omar Infante to ground into an inning-ending 6-4-3 double play. The ninth ended in similar fashion for the Braves: They loaded the bases with one out, but Clippard got Ross on a 6-4-3 double play.

NOTES: Heyward was replaced by a pinch runner after his hit in the eighth. Braves manager Bobby Cox said before the game he isn't sure how long Heyward might be sidelined but added the outfielder could be back in the starting lineup during Atlanta's series against the Philadelphia Phillies that begins Friday. ... Washington Redskins cornerback DeAngelo Hall threw out the ceremonial first pitch, and Washington Capitals coach Bruce Boudreau yelled, "Play ball!" ... Riggleman said the team has decided — but is not yet ready to announce — who will start Saturday against Florida in place of LHP John Lannan, who is being skipped because of left elbow discomfort.