Updated

In what is shaping up as a rough season for John Axford, this might have been the worst moment yet.

And it might end up costing Axford his job as Milwaukee's closer.

Allen Craig hit a bloop RBI single off Axford to put St. Louis in front, and the Cardinals rallied to beat the Brewers 3-2 on Monday night.

"In all honesty, I couldn't feel anything," Axford said. "It was the most awful outing I've had all year."

Milwaukee was leading 2-0 going into the ninth but Axford struggled with his control right away, eventually loading the bases with two outs and surrendering a tying two-run single to Matt Holliday. Axford (2-6) then was lifted after giving up Craig's single, which dropped softly into shallow left field.

Axford left the game to a steady stream of boos from the crowd.

"It's kind of a 'What have you done for me lately?,'" Axford said. "And if I'm not doing the job, they can say whatever they want."

Axford's sloppy inning wasted another strong performance by Mike Fiers, who pitched seven scoreless innings.

Manager Ron Roenicke acknowledged that Axford's role was up for review.

"We talk about it all the time," Roenicke said. "We talked about it just now, and we will again tomorrow."

And Roenicke isn't sure why Axford is struggling to find the dominant form he showed last season.

"I think he's got a lot going on upstairs," Roenicke said. "But he still seems to be the same guy. You talk to him before the game or batting practice, he seems to be the same guy. So I don't know what all the issues are."

Corey Hart hit his 17th homer for the Brewers, and Ryan Braun added an RBI double in the eighth.

Fiers continued his string of strong performances since he was recalled from Triple-A Nashville on May 29. He is 2-1 with a sparkling 0.76 in his last six games.

Monday's loss was another setback for the Brewers, who announced earlier in the day that ace Zack Greinke will skip his scheduled start Wednesday and isn't scheduled to pitch again until July 24 at Philadelphia.

Roenicke said Greinke was fatigued and thrown off his routine after making three straight starts — a July 7 game where he was ejected in the first inning, another start the following day and again in the Brewers' first game after the All-Star break.

Greinke said before the game he was "fine" with Roenicke's decision but was reluctant to discuss it. Greinke has been subject to trade speculation in recent weeks, with the Brewers mired in fourth in the NL Central.

St. Louis had lost three straight after getting swept by Cincinnati in a weekend series. Jason Motte (4-3) claimed the win.

The Cardinals had a scoring chance in the fourth when Yadier Molina hit a one-out double and David Freese walked. But Fiers got Matt Carpenter to fly out to center — allowing Molina to take third base — then got Daniel Descalso to ground out.

Milwaukee had a chance with two outs in the fifth when a sharp grounder by Cody Ransom glanced off the glove of Freese at third base, allowing Ransom to take second base on a play that was ruled a double. But Descalso charged a soft grounder by Fiers and threw him out, ending the inning.

Descalso led off the seventh with a single, and Lynn remained in the game to hit. After taking a ball from Fiers, Lynn fouled off two bunt attempts then struck out on another bunt attempt. Rafael Furcal hit a grounder back to Fiers, who bobbled the ball but recovered in time to throw to first as Descalso took second. Fiers then got Skip Schumaker to line out, ending the inning.

Francisco Rodriguez relieved Fiers in the eighth and gave up a leadoff single to Holliday, but got out of the inning without giving up a run.

Braun then gave the Brewers some breathing room, doubling in Norichika Aoki.

NOTES: Holliday extended his hitting streak to 15 games. ... Brewers C Jonathan Lucroy is scheduled to begin a rehabilitation stint at Class-A Wisconsin on Thursday. Lucroy has been on the disabled list since May 28 with a broken bone in his right hand. ... The Cardinals purchased the contract of RHP Trevor Rosenthal from Double-A Springfield and transferred LHP Jaime Garcia to the 60-day DL.