Manchester City fought back from 3-0 down to beat Chelsea 4-3 in a thrilling friendly at a sold-out Busch Stadium in St Louis.