Walker's 18th home run put the Pirates ahead 3-0 against Alfredo Simon four batters into the game. Pittsburgh's winning streak matches its longest of the season.
Worley (6-4) allowed two runs — one earned — and three hits in 6 1-3 innings to snap a career-worst, three-start skid. Mark Melancon pitched a perfect ninth for his 26th save after left-hander Justin Wilson and Tony Watson combined for 1 2-3 scoreless innings.
Despite retiring 12 batters in a row between the third and sixth, Simon (13-9) fell to 1-6 since pitching in his first All-Star game last month.
Todd Frazier homered for the Reds.