Vazquez helps Marlins beat Cardinals 4-2