Pedro Alvarez hit a three-run homer and Andrew McCutchen added a two-run blast for the Pirates, who were coming off a 3-6 road trip. Edinson Volquez (1-0) surrendered two runs on eight hits and a walk over seven innings to notch the win.
Jonathan Lucroy had two hits and drove in a run for Milwaukee, which suffered its first road defeat of the season (6-1).
The game was tied 2-2 before the Pirates used a three-run seventh to surge ahead.
Jordy Mercer rolled a leadoff single through the hole on the right side against Rob Wooten (0-1) and Harrison followed by drilling a towering shot down the left-field line for a 4-2 Pirates advantage.
Starling Marte then singled and advanced to third when he stole second and Lucroy's throw went into center. Russell Martin walked and Marte scored on McCutchen's force out to make it 5-2.
Pittsburgh blew the game open with a six-run eighth. Gaby Sanchez cracked a solo shot, Jose Tabata ripped an RBI double, Martin grounded an RBI single through the left side of the infield and Alvarez belted a three-run blast to left to make it 11-2.
Earlier, the Brewers opened the scoring in the first on Aramis Ramirez's two- out RBI single, but Pittsburgh plated a pair in the home half to go in front.
Marte worked a leadoff walk and McCutchen drilled a two-run shot to dead center two batters later for a 2-1 Pirates advantage.
Milwaukee tied the game in the third when Ryan Braun smacked a one-out double and came around to score two batters later on Lucroy's base hit into left- center.