Updated

No dustups between Bryce Harper and Cole Hamels in the rematch.

Harper and his teammates did little damage Wednesday night as Hamels pitched eight scoreless innings and led the Philadelphia Phillies over the Washington Nationals 4-1.

Hamels finished his outing by retiring Harper as the Phillies snapped a season-long four-game losing streak.

Hamels faced Washington for the first time since intentionally hitting the 19-year-old rookie on May 6. The incident sparked a firestorm, with Hamels earning a five-game suspension and Nationals general manager Mike Rizzo getting fined for his critical comments of Hamels.

"We just couldn't get anything going off Hamels," Nationals manager Davey Johnson said. "You have to tip your hat to him. He's tough. He's done that to a lot of people."

Hamels (7-1) didn't allow a hit until Danny Espinosa doubled with one out in the sixth. The left-hander won his seventh straight decision, allowing four hits and striking out eight.

"First and foremost, I'm happy about stopping the skid we've had," Hamels said. "I felt confident in my stuff."

The Phillies' victory ended Washington's franchise-record six-game winning streak in Philadelphia. The Phils have won just two of their last 11 games overall against the Nationals, with Hamels' victory at Washington on May 6 the other one.

"He's a good pitcher," said Washington's Ian Desmond, who went 0 for 4. "We've faced him twice and we'll face him again. I hope next time we will be better than this time. He did what he usually does, fastballs and changeups."

Harper singled in the sixth. The Phillies led 3-0 in the eighth when Harper grounded out with a runner on third to end the inning.

Shane Victorino homered, doubled and drove in two runs. Adam LaRoche homered with one out in the ninth off Jonathan Papelbon. LaRoche snapped an 0-for-19 skid.

Carlos Ruiz doubled and singled twice while batting cleanup for the first time in his major league career. Phillies manager Charlie Manuel juggled a lineup that had scored four total runs in its last three games.

Ruiz got a bruise on his right wrist after taking a hard foul ball hit by Espinosa in the eighth inning. X-rays were negative and Ruiz is day-to-day.

Edwin Jackson (1-2) allowed three runs and seven hits in seven innings.

Mike Fontenot hit an RBI single with two outs in the second, and Victorino's two-out double in the third drove in Hunter Pence.

After Espinosa doubled in the sixth, Harper followed with a single to right field. But Pence made a strong throw home and Ruiz made a good tag after a difficult hop in front of the plate for the out.

"That's where defense really saved us," Hamels said. "You don't want the opposing team to get the momentum. That was a really big play."

The Phillies went up 3-0 in the seventh when Fontenot doubled, went to third on Hamels' sacrifice bunt and scored on a suicide-squeeze by Juan Pierre.

Victorino homered with two outs in the eighth off Henry Rodriguez, making his first relief appearance since being demoted as the closer following Monday's game.

Harper made an excellent running catch in the fifth, racing back to the warning track to snare Pierre's liner. The ball hit and popped out of Harper's glove before he retrieved it after a step.

NOTES: The Nationals travel to Atlanta for Friday night's game, with LHP Ross Detwiler (3-3, 3.65 ERA) scheduled to face Tim Hudson (3-1, 3.03).