Signed to a six-year, $155 million deal over the offseason, Lester (4-7) remained winless in nine straight starts since beating Pittsburgh on May 16. He allowed two hits and two unearned runs while striking out eight for Chicago, which had won five of six.
Lester's bid for his second career no-hitter ended with one out in the seventh when Kris Bryant couldn't handle Jhonny Peralta's sharp grounder in back of third base, which also ended Lester's streak of 18 batters retired.
The Chicago defense then let Lester down when Bryant's throw to second on a Jason Heyward grounder went into right field. That was followed by Yadier Molina's run-scoring sacrifice fly to right, and Kolten Wong's RBI single to left that put St. Louis ahead 2-0.
Lackey and two relievers combined on a six-hit shutout.
Lester also had the first hit of his career when he had an infield single in the second off John Lackey. He had been 0 for 66 lifetime and 0 for 30 this season.
Unfortunately for Lester, Lackey (7-5) continued the offensive woes for the Cubs, who have scored three or more runs in just two of their last 13 games.
Lackey, who was a teammate of Lester's in Boston from 2010-2014, struck out four and gave up six hits while walking one and getting enough support from a Cardinals offense that scored more than three runs for the first time since June 28.
The Cubs had a good chance in the sixth when Anthony Rizzo and Bryant started the inning with singles. Miguel Montero struck out before Wong made a diving play on a sharp Starlin Castro grounder to start a double play and end the inning.
With that defense and the offense showing some signs of improvement, especially in a four-run ninth against Edwin Jackson, the Cardinals stayed hot and won their third straight and 16th of 23 in a game that was delayed by rain for more than an hour in the middle of the eighth inning.
Cardinals: OF Jon Jay (left wrist) has been told to do nothing for the next week in hopes the inaction will help the healing.
Cubs: RHP Rafael Soriano joined Double-A Tennessee after a brief time in Mesa, Arizona. Soriano was signed June 9 and had been in the Dominican Republic waiting for his immigration situation to clear up.
Cardinals LHP Tyler Lyons (2-0, 5.09) faces Chicago RHP Jake Arrieta (8-5, 2.80) in the first game of Tuesday's doubleheader. In the nightcap, St. Louis LHP Tim Cooney (0-0, 5.40) will oppose Cubs RHP Dallas Beeler, who is expected to be called up from Triple-A Iowa before the game.
Link to box score: St. Louis (54-28) 6 at Chicago Cubs (44-37) 0