Maholm (1-2) allowed one run and four hits to snap a personal six-game losing streak. The left-hander struck out five and walked three in his first victory since July 10 for Pittsburgh against the Cubs.
Darwin Barney and Steve Clevenger each had three hits for the Cubs, who grabbed control with a four-run second inning. Starlin Castro had a double and a triple.
Joey Votto and Brandon Phillips went a combined 1 for 7 for the Reds, who have lost six of nine. Mike Leake (0-2) allowed 10 hits and five runs in 5 2-3 innings.
One day after he learned he will not face charges over an alleged sexual assault, Castro tripled home a run in the second and doubled in the fifth. The 21-year-old shortstop also committed two errors to run his major league-worst total to seven.
State's attorney spokeswoman Sally Daly said Friday police and prosecutors reviewing the case found insufficient evidence to charge Castro. His attorneys have said the allegations that he sexually assaulted a woman last fall are baseless.
Phillips singled in a run in the first, but Bryan LaHair hit a sacrifice fly in the bottom half and the Cubs added four more runs in the second.
Clevenger led off with a single to right and moved to second on a groundout. Joe Mather followed with an RBI double to left.
Mather advanced on Leake's errant pickoff attempt and scored on David DeJesus' single. Barney added a run-scoring double and came home on Castro's first triple of the season to make it 5-1.
Clevenger added an RBI single in the seventh as the Cubs finished with a season-high 14 hits.
Clevenger, the backup catcher, is 10 for 17 on the season.
The Reds had runners on third and second with no outs in the seventh, but James Russell retired Stubbs, Votto and Phillips to get out of the inning.
NOTES: Cubs RHP Ryan Dempster was placed on the 15-day disabled list with a strained right quadriceps. OF Tony Campana was recalled from Triple-A Iowa, and Randy Wells will start in place of Dempster on Sunday.