Walker's three-run hit came after Chris Snyder drove in two runs with a single and then scored on a single by Jose Tabata in the Pirates' big frame, allowing Pittsburgh to even its three game series with the Reds at one win apiece.
Walker drove in a fourth run with a fifth-inning RBI single.
Paul Maholm (7-9) got the win, yielding four runs on nine hits in six innings.
Joel Hanrahan earned his first save of the year with a scoreless ninth after Cincinnati had pulled to within a run.
Mike Leake (7-3) took the loss, surrendering six earned runs in five innings.
The Reds maintained their half-game lead over second-place St. Louis in the National League Central despite the setback.
Exploding whale video goes viral on Internet
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'