Scary because the Phillies carried a four-run lead into the ninth inning only to come close to blowing it.
But Ruf went 2-for-4 with one double, one home run and two RBIs. He has reached base safely in 33 consecutive games, dating back to last season. It is the longest active streak in baseball. He also is the first Phillies player to hit that mark since Chase Utley reached base safely in 33 consecutive games from Sept. 7, 2008 to April 22, 2009.
Mike Schmidt reached base a franchise-record 56 consecutive games from Aug. 16, 1981 to May 8, 1982.
"We still have 50 games left," Ruf said. "It's still important to stay consistent, keep your same routine each day, from the first game of the year to the last game of the year. It's nice to have a month of success right now, but that's not the ultimate goal -- to have one month of success. It's to have a successful career, multiple seasons of playing baseball well."
Ruf is hitting .309 with seven doubles, four home runs, seven RBIs, a .417 on-base percentage and a .543 slugging percentage in 24 games this season. The Phillies entered the game with just one other player with an on-base percentage better than .338: Kevin Frandsen (.347).
The team's .306 on-base percentage entering the night ranked 12th in the National League. Not coincidentally, the Phillies were 13th in the league averaging 3.76 runs per game.
They certainly need more players who can get on base like Ruf, if he can keep it up. He has a .995 OPS in 114 at-bats from last September through Tuesday.
"Ruf has to hit, but I think he can," Phillies manager Charlie Manuel said. "The more he plays, the more we'll see. It seems like he gets better the more he plays."
The Phillies took a 1-0 lead in the first inning when Utley, who went 3-for-4 with a triple and two RBIs, singled to score Michael Young from second. But the Cubs took a 4-1 lead in the second, which included a three-run home run from Donnie Murphy to left field.
Kyle Kendrick allowed a homer to Anthony Rizzo in the third to make it 5-2.
Kendrick has been struggling since late June. He is 3-4 with a 6.93 ERA (29 earned runs in 37 2/3 innings) in his last seven starts.
"I've still got nine starts left, so I can finish strong," Kendrick said. "Everyone goes through a rough patch during the season. This happens to be mine right now. I felt great tonight. My velocity was back. The stuff was pretty good tonight. I'm getting out of it."
But the Phillies came back. They scored twice in the third with Ruf knocking in a run with a double to help make it 5-4. Ruf then hit a solo home run to left field in the fifth inning to help the Phillies take a 7-5 lead.
The Phillies almost experienced a disaster in the ninth. Closer Jonathan Papelbon allowed a single and a double to put runners on second and third with no outs to start the inning. He struck out the next two batters before Nate Schierholtz singled to score both runners to make it a two-run game.
Starlin Castro then hit a fly ball to left-center field. Left fielder Domonic Brown cruised underneath the ball, but missed it to allow another run to score to make it 9-8.
Papelbon eventually got the final out -- another fly ball to Brown in left -- to preserve the victory.
"I just dropped it," Brown said. "That's not acceptable. That's not acceptable at all."