The win moves the Cubs within two games of N-L Central-leading Milwaukee.
Alfonso Soriano had a single, double and triple for the Cubs, who've won nine of 12. Chicago's 31-and-15 record since June Third is the best in the major leagues over that span.
Juan Encarnacion had four singles and an R-B-I for the Cardinals, who are 13 games under .500.
Lilly is 11-and-4. He worked seven innings and gave up a run and six hits. Cards starter Adam Wainwright fell to 9-and-8 after giving up six runs in five innings.