Correia (2-0) limited the Cardinals to five hits and two walks while fanning three for the Pirates, who concluded a season-opening road trip with a 4-2 mark.
Walker's solo blast in the fifth put Pittsburgh up 2-0. He finished with a pair of hits and Lyle Overbay added an RBI double among his two hits in the Bucs' victory.
Joel Hanrahan picked up his fourth save of the young season despite allowing an RBI double to Yaddier Molina in the ninth.
Chris Carpenter (0-1) pitched well but was the loser, yielding one earned run on eight hits over six innings.
St. Louis fell to 2-4.