MIAMI -- Stephen Strasburg froze in his follow-through, staring at the plate umpire when a call went against him.
The rookie angrily snatched return throws from his catcher, stomped on the mound and hitched his shoulders as though out of sorts, which he was.
Strasburg (4-2) needed 34 pitches in the opening inning. He allowed two baserunners in each of the first three innings, walking three and throwing the first wild pitch of his career. But he finished with seven strikeouts in six innings and lowered his ERA to 2.03.
"You're not going to go out there and feel perfect every single time," Strasburg said. "What separates the really good pitchers from the average ones is their ability to figure it out on the fly and make adjustments without really giving up too many runs. I was able to do that tonight."
Matt Capps, taking the mound for the first time since he was the winning pitcher in Tuesday night's All-Star Game, pitched a hitless ninth to complete a four-hitter. The shutout was the third this year for the Nationals, thanks in part to Strasburg's first scoreless outing.
"As Stephen has done, he just got tougher and tougher as the game went along," manager Jim Riggleman said.
Pitching for the first time in a week because of the All-Star break, Strasburg battled rustiness as he walked two in the first inning, including Gaby Sanchez on 12 pitches. Pitching coach Steve McCatty paid a visit to the mound, and Jorge Cantu's flyout ended the threat.
Two singles and a sacrifice put Marlins at second and third with two outs in the second, but Strasburg got Chris Coghlan to ground out. A walk and a single in the third for Florida were sandwiched around a caught stealing.
"He was one hitter away from being out of the game, but that two-out RBI never came," Marlins manager Edwin Rodriguez said. "You have to give him credit. He pitched out of tough situations."
Strasburg's command of his breaking ball improved as the game progressed. He threw only a couple changeups and fed the Marlins a steady diet of fastballs in the upper 90s.
"They didn't prove that they could hit my fastball, so I wasn't going to throw any changeups to possibly make a mistake," he said.
Strasburg retired 10 of the final 11 batters he faced before departing after throwing 99 pitches.
"What's so impressive about him is his mental makeup," Florida's Dan Uggla said. "He knows how to pitch. He throws strikes and he commands all his pitches. For a kid as young as he is and has the ability he does, that's the biggest difference between him and a lot of other kids out there."
Strasburg had the best of it in his first showdown with another heralded rookie, Mike Stanton. Florida's 20-year-old right fielder went 0-for-2 against the 21-year-old Strasburg.
The Marlins began a 10-game homestand that will determine whether they're buyers or sellers at the trade deadline, and they were plagued by a familiar problem: situational hitting. They went 0-for-4 with runners in scoring position.
Rodriguez said he drew up eight to 10 potential lineups before deciding on only a modest tweak to start the second half of the season. Uggla batted fourth for just the third time this season, and Cantu was dropped to fifth.
The shuffling didn't help: Florida was shut out for the fourth time.
Nolasco, bidding to win his fifth consecutive decision, allowed only four baserunners -- all on singles -- in the first five innings. But he retired just one batter in the sixth.
Nyjer Morgan and Cristian Guzman started the inning with singles, and Adam Dunn walked to load the bases. Willingham followed with a double to end Nolasco's night, and Ivan Rodriguez's sacrifice fly made it 4-0.
Left fielder Coghlan made a leaping catch to rob Ryan Zimmerman of an extra-base hit in the fourth. ... Before the game, the Marlins manager said they have underperformed. "We have the talent to have a way better record," Rodriguez said. ... Riggleman said he plans to platoon middle infielders Guzman, Ian Desmond and Adam Kennedy during the second half of the season. ... NL ERA leader Josh Johnson, who starts Saturday for Florida, has an ERA of 0.79 over his past 11 games.