Harang allowed four hits -- three of them solo homers -- and Cincinnati's bullpen held on Tuesday night as the Reds sent Chicago to its seventh loss in nine games, 7-6.
Harang (12-3) outpitched Cubs' ace Carlos Zambrano, who failed for a third consecutive start to get his 15th win.
"Anytime you come here or St. Louis, any team that's in first place or right on the bubble, you always kind of get up for that a little bit more," Harang said. "The atmosphere around here is so intense, it's always nice to come here and get a victory."
Harang, who has started four games this season against the Cubs, is 7-2 in 13 career starts against Chicago, including 3-0 at Wrigley Field.
"He's one of the best pitchers in the major leagues and everyone should know that," said the Reds' Brandon Phillips, who had three hits and was on base four times.
Harang was charged with five runs and left after a leadoff walk to pinch-hitter Mike Fontenot in the eighth. The Cubs then pushed across a run to make it 6-5 on Lee's two-out RBI single off Jared Burton.
Weathers provided some drama in the ninth before earning his 23rd save.
"It's frustrating. I thought Fontenot's ball was out of the park. But there was no wind," Ramirez said.
Zambrano (14-9) didn't look at all like the Cubs' ace.
He left two outings ago in the sixth inning with heat-related cramping and was driven out by Houston six days ago after 5 1/3 innings and allowing seven runs.
On Tuesday night he allowed 13 hits and six runs in seven innings with two walks and no strikeouts.
"It's kind of hard to hit Zambrano. But he left the ball up and we just took advantage of that," Phillips said.
"I don't have any explanation for it," Cubs manager Lou Piniella said of Zambrano's performance.
Zambrano didn't either, or why he hasn't won in his last three starts when the Cubs need him the most.
"Sometimes you don't have your best stuff and sometimes you go out there and try to do too much," he said. "That's part of the game. Just learn from this and from the bad games and keep your head up."
Ken Griffey Jr.'s two-run double after Josh Hamilton's single and a walk to Jeff Keppinger gave the Reds the lead in the third. Singles by Javier Valentin and Edwin Encarnacion started the fourth, Harang sacrificed, Hamilton hit an RBI grounder and Keppinger added a run-scoring single for a 4-0 lead.
Encarnacion made a nice play at third base to retire Zambrano to end the third inning, prompting the emotional right-hander to slam his helmet down with it bouncing all the way into right field.
"I was upset," Zambrano said.
Lee, in a 5-for-34 slump, hit his 13th homer with two outs in the fourth for the Cubs' first hit. Ramirez, who missed six games with a sore wrist, followed one pitch later with his 17th.
The Reds made it 5-2 in the fifth when Phillips led off with a double and scored on Valentin's two-out single to center. Jones cleared the right-field bleachers with two outs in the sixth, just his fourth homer of the season.
But Phillips was hit by a pitch in the seventh and scored on another two-out hit, a single by Scott Hatteberg.
- SS Alex Gonzalez was not with the Reds, remaining home to attend to his 10-month-old son, who is ill.
- The Reds are 20-16 under interim manager Pete Mackanin.
- Zambrano is 1-3 against the Reds this season and Tuesday night marked the third time he faced Harang this season.
- Harang had given up 13 homers in 160 1/3 innings entering the game, then gave up three in six innings.