McKenry supplied four hits, including two run-scoring singles, while Walker went 3-for-5 with two RBI doubles in a 14-hit Pittsburgh attack.
Garrett Jones also provided two RBI as the second-place Pirates evened their three-game series and pulled to within 1 1/2 games of National League Central-leading St. Louis.
Charlie Morton (3-2) notched the decision, yielding four runs (three earned) on nine hits over five innings.
Marlins starter Tom Koehler (2-6) was tagged for five runs on nine hits over five innings.
Giancarlo Stanton and Logan Morrison each went 3-for-4 with an RBI for Miami.