Lieber was up to the task. Williams allowed just two hits in his first 6 2/3 innings, but Lieber took a perfect game into the seventh and gave up two hits in 8 2/3 innings to help the Phillies beat the Reds 2-0.
Lieber (3-4) didn't allow a walk and struck out six while throwing 110 pitches, 83 for strikes.
"I knew after the fourth or fifth inning that I couldn't afford to make a mistake," Lieber said. "When the other pitcher is pitching like that, you need to step up your game. It puts pressure on you."
The 36-year-old right-hander retired the first 20 batters he faced before Adam Dunn lined a single up the middle past shortstop Jimmy Rollins on an 0-1 pitch with two outs in the seventh inning. Lieber regrouped to get Austin Kearns to fly out to right fielder Chris Roberson in foul territory.
"We couldn't get anything going early," Reds manager Jerry Narron said. "We haven't been able to for the last few games, and when you face a pitcher like Lieber, it's tough. He throws strikes."
The only other hit Lieber gave up was a two-out single to pinch-hitter Ken Griffey Jr. in the ninth inning. Tom Gordon got the final out for his 12th save in 13 opportunities to close out Lieber's third straight win.
"We were just talking about that," Phillies manager Charlie Manuel said. "If he gets on a hot streak, he can reel off six or seven like that. He threw strikes and kept the ball down good. We wanted him to finish the game, but once Griffey got that hit, I knew it was time to get him."
"He threw so many strikes, and he kept it off our barrels," said Reds first baseman Scott Hatteberg, who went 0-for-3. "We were either early or late."
The Phillies have won 12 of their last 13 games and have handed the Reds their first back-to-back losses at home this season. The loss guaranteed Cincinnati its first losing series at home in seven series this season.
Williams almost matched Lieber pitch for pitch. He allowed a first-inning single up the middle by Shane Victorino and a fifth-inning single to left by Sal Fasano. They were the only two Phillies batters to reach base until center fielder Quinton McCracken dropped Ryan Howard's routine fly ball with two outs in the seventh inning for a two-base error. David Bell followed with a run-scoring double to right field.
"I didn't secure it, and it just popped out," McCracken said. "Unfortunately, it cost us a run there -- Murphy's Law of baseball."
"If we make a couple of plays, maybe it's 0-0 and we're still playing," Narron said. "In a close game, you have to make routine plays, and tonight, we didn't."
Williams allowed five hits and no walks with five strikeouts in 8 1/3 innings, his longest outing of the season.
"(Lieber) was putting up zeros, and I was just trying to put up zeros, too," said Williams, who'd picked up both of his wins over his last four starts after losing his first two of the season.
"I think Lieber really overshadowed how well Williams threw," Hatteberg said.
- Victorino's streak of hits in consecutive at bats ended at seven with a third-inning foul popup to C Jason LaRue. Victorino singled up the middle in the first. The Phillies club record is nine, held by three players.
- Roberson's eighth-inning leadoff single was his first career hit.
- RHP Julio Santana was placed on the 15-day disabled list with tendinitis in his right elbow, and RHP Geoff Geary was recalled from Triple-A Scranton/Wilkes-Barre.
- RF Bobby Abreu was scratched from the original starting lineup with back spasms.