Pittsburgh won for only the fifth time in its last 43 games at Milwaukee, a stretch that began during the 2007 season.
The Pirates are on a streak of six wins in seven games that has moved them above .500 for the first time since they captured two of their first three games this year.
Pittsburgh faced a 1-0 deficit before sending nine men to the plate in the third.
Matt Hague added a one-out single and a base hit by Rod Barajas drove in Walker with the third run of the inning. Jordy Mercer then walked to load the bases and Hague was thrown out at home on a fielder's choice grounder by pitcher Kevin Correia.
That brought up Tabata, who cleared the bases with a double to center on a 1-0 pitch.
Correia (2-5) got the win, giving up two solo homers over 5 2/3 innings. He had lost his previous five decisions.
Randy Wolf (2-5) gave up all the runs in the third and eventually went six innings to suffer the loss.
Milwaukee had won a season-best four in a row.