The teams had been set to play Friday, Saturday and Sunday at Busch Stadium. The Cubs were scheduled to fly back to Chicago on Friday evening.
The Cardinals had previously suffered a coronavirus outbreak, with seven players and six other members of the traveling party testing positive. The Cardinals had returned to workouts at Busch Stadium in the last two days after quarantining and not playing since July 29, but the additional positive test caused more concern and wreaked further havoc in the MLB schedule.
The game Friday was postponed to "allow for additional testing and to complete the contract tracing process," MLB said in a statement.
The Cubs are the only team in MLB to not have a player test positive for COVID-19. They sit atop the NL Central at 10-3. The Cardinals are 2-3 and have played the fewest games in MLB.
Chicago's next scheduled game is at Cleveland on Tuesday evening.