Nolasco (4-7) posted his first victory since May 19, yielding just one run on three hits. The right-hander issued one walk and fanned four while tossing 61-of-100 pitches for strikes.
Steve Cishek was called on to make his ninth save after the Cardinals scored a run in the ninth.
St. Louis starter Tyler Lyons (2-3) was roughed up for six runs on eight hits in a 5 1/3-inning effort.
Jon Jay and Matt Adams each drove in a run for the Cards.
Scarlett Johansson steps out with fiance after pregnancy reveal
Jessica Simpson shares three-way kiss with friends in photo