Trailing 1-0 in the sixth, the Brewers scored three times to take the lead.
Following Corey Hart's single, Lucroy blasted a 2-0 pitch from Jamie Garcia (2-1) off the top of the left field wall, scoring a pair of runs.
Zack Greinke (3-1) earned the win with six innings of one-run ball, overcoming four walks.
John Axford nailed down the save in the ninth when the Cardinals' Tyler was thrown out at home on a broken play to end the game as the Brewers avoided a three-game sweep.
Garcia ended up yielding three runs on nine hits over seven frames, walking one and striking out six.
Rafael Furcal had two hits and an RBI for National League Central-leading Cardinals.