Joey Votto and Brandon Phillips also homered for the Reds, denied a chance to clinch the division title Sunday when the St. Louis Cardinals held on to win 8-7 at the Chicago Cubs. Cincinnati is off Monday and then opens a three-game series at home Tuesday night against the Houston Astros.
San Diego's loss ensured a playoff spot for the Philadelphia Phillies, who need one win or an Atlanta defeat to wrap up the NL East crown.
It's the seventh time since Sept. 16 that the Giants and Padres have flip-flopped atop the division. The Giants won 4-2 at Colorado. The Padres and Giants will play a season-ending weekend series at San Francisco.
The Reds snapped a three-game losing streak and won for just the eighth time in 21 games.
Homer Bailey (4-3) combined with two relievers on a six-hitter. Bailey allowed two runs and five hits in seven innings. The Reds have won eight of Bailey's nine starts since he came off the disabled list on Aug. 15. Still, this was only his third win in that stretch.
Adrian Gonzalez hit his 30th homer for the Padres, a leadoff shot down the right-field line in the second, and finished with three hits. It is his fourth 30-homer season, extending his club record. He hit a career-high 40 last year. Yorvit Torrealba also homered for San Diego in the second, his seventh.
Votto hit a two-out, opposite-field shot to left field off lefty Clayton Richard in the first, his 37th. He added a two-run single in the six-run eighth.
Six Padres pitchers combined to walk nine, with five of those runners scoring.
Heisey had the big blow in the fourth. Richard loaded the bases by walking Votto leading off the inning, allowing a one-out double by Jonny Gomes and intentionally walking Phillips. Heisey then hit a hard grounder down the line past third baseman Chase Headley to clear the bases and give the Reds a 4-2 lead.
With Gomes aboard on a leadoff walk in the sixth, Phillips homered off the right-field foul pole to increase the lead to 6-2 and chase Richard. It was his 17th.
Heisey homered to left off Edward Mujica leading off the eighth, his eighth. Votto hit a two-run single, Scott Rolen an RBI single and two runs scored on throwing errors by pitchers Adam Russell and Cory Luebke.
Richard (13-9) allowed six runs and five hits in five innings, struck out five and walked four.