MILWAUKEE -- St. Louis' power surge handed the sliding Milwaukee Brewers another demoralizing loss.
Now the Cardinals are just one game back from their familiar perch atop the NL Central.
Matt Holliday hit a solo homer with two outs in the ninth inning off closer Francisco Rodriguez, completing a comeback from a six-run deficit for a 7-6 win Friday night for St. Louis. The Brewers have lost six straight games and 10 of their last 11.
Friday night will go down as one of St. Louis manager Mike Matheny's most memorable games.
"Just to be able to keep coming and coming and the intensity, the grit, the fight, that to me is just something you just don't have every once in a while," Matheny said. "I couldn't be any more proud."
Holliday sent the first-pitch changeup from Rodriguez (3-3) into the left-field seats to break the tie. The Cardinals hit four homers and cut the sliding Brewers' lead in the NL Central to one game.
Trevor Rosenthal wrapped up six shutout innings for the St. Louis bullpen with his 28th save, getting two strikeouts after allowing a leadoff single to Aramis Ramirez in the bottom of the ninth. All-Star setup man Pat Neshek (4-0) tossed 1 1/3 scoreless innings for the win.
"What a job," Matheny said of his relief corps.
It was also a second straight tough loss for the Brewers, who fell 9-1 on Thursday to the Phillies despite Matt Garza taking a no-hit bid into the seventh inning.
Manager Ron Roenicke was ejected in the ninth after arguing a strike call. Afterward, the visibly shaken skipper closed the clubhouse and didn't take reporters' questions, citing a death in the family of a player whom he did not name.
"For respect of him right now, we're not going to let anybody in the clubhouse," Roenicke said. "Sorry, but these things are tough and I just don't want to leave any players open to anything."
The Cardinals chipped away with three home runs off starter Yovani Gallardo.
Jhonny Peralta hit a two-run homer -- his team-high 14th -- to get St. Louis within 6-5 with one out in the sixth, two pitches after Roenicke visited the mound but decided against pulling Gallardo with the bullpen going.
Gallardo departed after Peralta's homer, having allowed five runs and seven hits in 5 1-3 innings. The bullpen gave up the lead anyway.
The Brewers tagged Joe Kelly for six runs and seven hits in three innings in his first start back from a nearly three-month stint on the disabled list with a left hamstring injury. Kelly got hurt April 16 at Miller Park.
Kelly plunked leadoff hitter Carlos Gomez just below the palm of his hand and Scooter Gennett singled. After a double steal, Milwaukee loaded the bases and eventually got a sacrifice fly from Ramirez and two-run double from Khris Davis for a 3-0 lead in the first.
Gennett finished 3 for 5 with two runs scored. He tripled in a three-run second inning during an at-bat extended after a fan in the first row down the left-field line reached for a catchable foul ball that eluded Holliday.
The slugger got his revenge in the ninth with his sixth homer of the year and first since June 15, which also was a go-ahead solo shot in the ninth in a 5-2 win over Washington.
"It kind of came in toward me," Holliday said of Rodriguez's changeup. "I got the barrel on it, it had good carry to it."
The Cardinals claimed veteran C George Kottaras off waivers from the Cleveland Indians and planned to add him to the 25-man roster Saturday. They're looking for help behind the plate with Yadier Molina out with a thumb injury. The team said Molina had surgery Friday. ... Kolten Wong hit his fourth homer for the Cardinals since coming off the DL on July 6. ... Brewers C Jonathan Lucroy will start the All-Star game Tuesday with Molina out. ... RHP Marco Estrada spent his first day in the bullpen after being bumped from the rotation for Saturday's starter, rookie Jimmy Nelson (1-0). RHP ace Adam Wainwright (11-4) goes for St. Louis.