Cruz gets big hit again, Rangers beat Cardinals