Phillies catcher Erik Kratz, left, is sent flying after Tyler Moore tries to run over him at home. Moore was out on the play. (John McDonnell/The Washington Post)

Throughout this season, these Washington Nationals have displayed a head-scratching inability to get runners home, often having a tough enough time simply getting them on base. For at least one inning on an unusually chilly May night, they exorcised their situational hitting demons. Scuffling bench players came to life. Runners weren’t stranded on base.

Against division rival Philadelphia at Nationals Park on Friday, the Nationals’ offense finally found its footing in a four-run fifth inning, their highest single-inning output in a month. The explosion propelled Washington to a 5-2 victory. The Nationals not only put runners on against Phillies right-handed starter Kyle Kendrick, they also drove them in. Their offensive efforts supported a strong outing by Jordan Zimmermann, who battled a stiff neck on a cold night to become the first National League pitcher to reach eight wins.

The Nationals’ fifth inning started, predictably, with a single from Bryce Harper. Adam LaRoche followed with a triple to deep center, a hit aided by the misplay of center fielder Ben Revere. Two batters later, Kurt Suzuki singled home LaRoche. And after an infield single by struggling Tyler Moore snapped a 0-for-23 slump and put a second runner on base with two outs, Steve Lombardozzi, starting for the injured Danny Espinosa, drilled a two-run double to right.

“Just kind of keeping the line moving, that’s the biggest thing,” said Lombardozzi, who learned on Friday he will see more time at second base while Espinosa rests a fractured right wrist he has played with for a month. “Not trying to hit a five-run homer, just moving the line.”

The Nationals’ offense looked like the run-producing lineup many expected to see from start of the season. The Nationals entered Friday’s game hitting .234 with runners on base, the third-worst mark in the major leagues. The Nationals had four hits with men on in the fifth inning alone, chasing Kendrick, who entered with a 2.82 ERA.

“We haven’t seen much of that all year,” said Manager Davey Johnson, who had vowed before the game to not shave the facial hair on his chin until the offense came to life.

Zimmermann wasn’t his sharpest, but he still efficiently carved through the Phillies’ lineup. He gave up six hits, but only two runs, needing just 92 pitches to get through seven innings and leave with a still impressive 1.71 ERA through an NL-high 732 / 3 innings. He has tossed at least seven innings in eight of his past nine starts.

Zimmermann woke up on Friday morning with minor neck stiffness, likely a result of the long plane ride back from San Francisco on Wednesday night. Both he and Johnson wanted to be cautious, so the discomfort prevented Zimmermann from pitching deeper into the game. Zimmermann said the neck was affecting him slightly, as he couldn’t get his fastball inside enough on left-handed batters.

Before he was staked to a lead in the bottom of the fifth inning, Zimmermann was again playing the role of master damage controller. The few times that Zimmermann has encountered trouble this season, he has met it with calm. Zimmermann allowed a leadoff single to Domonic Brown in the fifth, and put him on second base with a wild pitch. Freddy Galvis singled, and Erik Kratz’s sacrifice fly gave the Phillies a 2-1 lead.

The bases were loaded after Kendrick faked a bunt and singled and then Jimmy Rollins singled. Pitching coach Steve McCatty came out to the mound to talk with Zimmermann. On the second pitch to Revere, Zimmermann escaped the damage with a 4-6-3 double play. Zimmermann has the stuff to strike out batters, but his pitch-to-contact approach has proven successful this season. He fanned only one batter on Friday, but notched 15 groundouts.

For the first four innings, the Nationals picked at Kendrick but couldn’t deliver the knockout blow. Kendrick entered the game with 14 walks in 602 / 3 innings, and in the third he loaded the bases with consecutive walks of Harper, Ryan Zimmerman and LaRoche. Anxiously, Ian Desmond swung at the first pitch and missed. He connected on the second pitch, lifting it to foul territory in right. Delmon Young caught the ball and Harper, tagging up on the play, scored.

In the fourth, the Nationals had yet another chance. Moore, hitting .121 entering the game as he played for injured Jayson Werth, stood at second after a two-base throwing error by Rollins. Lombardozzi lined a single to shallow center field. Moore had a bad jump off second base. A struggling offense was going to be aggressive and push for runs.

Revere scooped up the ball and fired home. By then, third base coach Trent Jewett had already waved the 6-foot-2, 220-pound Moore home. Kratz bent down and caught the low throw, holding the ball inside his glove, bracing for contact. Like a football player, Moore lowered his right shoulder into 6-4, 255-pound Kratz’s chest.

Both helmets flew off. Kratz went airborne. Moore fell to his knees and touched home plate with his right hand, but had already been tagged out. It was a potentially dangerous play for Moore, but an even more questionable send by the Nationals. Even though Zimmermann was due up next, there were no outs in the inning.

“I know Trent was a little upset he sent him on that play, but I didn’t blame him at all,” Johnson said. “We haven’t scored many runs, and shoot, it could’ve been a bad hop or something.”

If the Nationals hadn’t burst out in the fifth inning, those squandered opportunities would have loomed larger. But after their offensive outburst, Zimmermann and the Nationals could relax. Tyler Clippard pitched a perfect eighth inning, and Rafael Soriano notched his 14th save to seal the win.

“It’s just good for guys to step up when runners are on,” Moore said. “It was getting later in the ballgame. And that’s how you win ballgames, with clutch hitting.”