Valbuena's two-run blast in the next inning gave Chicago a 6-1 advantage and proved to be the decisive blow for the Cubs, who recorded a sixth victory in eight games.
Matt Garza (6-1) reeled off his fifth win in five starts, surrendering two runs on 10 hits over 6 2/3 innings. The right-hander issued two walks and struck out four.
Kevin Gregg notched his 17th save despite allowing a run on two walks and a hit in the ninth.
Cardinals starter Lance Lynn (11-4) absorbed the loss, yielding six runs (five earned) on 10 hits over 4 1/3 innings.