Halladay's 2-hitter leads Phillies past Cardinals