The Padres lost their fourth straight game overall, and their starting pitchers dropped to 0-10 in their past 22 outings since April 17.
"That's a long time," manager Bud Black said. "And there's been some very well-pitched games in there. That's frustrating."
Peavy (2-5) struck out nine over six innings -- he has 29 strikeouts combined in his past three starts -- but he has lost four straight decisions, with his previous victory coming April 16. He allowed three runs, six hits and two walks.
"You pitch that game across the big leagues, most times, you'll get a 'W,' " Black said.
"Just good enough to lose," said Peavy, who was the subject of daily trade rumors to the Cubs and elsewhere in the offseason.
The prospects looked bright for a Padres victory after Gonzalez connected against Harden for his 11th homer with Brian Giles aboard in the first. It marked the first time in 19 innings the Padres scored while Peavy was in the game.
"You got to make that hold up," Peavy said. "That's the first time I've pitched with a lead in a while."
Peavy made it last for a while, keeping the Cubs scoreless until Alfonso Soriano hit an RBI double in the fifth. An inning later, Chicago moved ahead, 3-2, on Milton Bradley's two-run homer -- which was measured at 439 feet -- to center.
Bradley called Peavy, "probably the best pitcher I ever played with. Great dude, he really made me feel comfortable when I was part of the Padres."
Bradley also appreciated that Peavy, a teammate in the 2007 season, came at him with a fastball.
Peavy put it a little differently.
"Made a bad pitch to Milton and it cost us the ballgame," Peavy said. "It just ran back over the middle [of the plate]."
Peavy's memories of Bradley are fond ones.
"I like Milton a lot," Peavy said. "He's a great competitor."
And coming to Wrigley, where he would have been a Cub if Kevin Towers and Jim Hendry had struck a deal, made little difference to Peavy.
"Great atmosphere, great city, good team," Peavy said. "I thought it would be a fun place to play, but I didn't think about that tonight."
The Padres have enough to think about, considering they are 4-17 since starting 9-3.
"We know we can win because of that [start]," Gonzalez said. "That's what makes it more frustrating. When you lose this many, it means you're consistently not playing good baseball.
"The blame can be thrown in every single direction."
The Padres mustered three singles combined against Harden (4-1) and reliever Aaron Heilman after the first inning. Harden allowed two runs, four hits and a walk over six innings.
Gonzalez grounded out against Carlos Marmol as the potential tying run in the eighth.
Rookie Bobby Scales hit his first Major League homer against Edwin Moreno in the seventh, and the Cubs tacked on two more against Cla Meredith in the eighth.