Mariners end 5-game skid, beat Cardinals 4-1