Listen to article • 0:00 min

ANAHEIM, Calif. — Bryson Stott could only stare in disbelief, his hands on his head.

He had turned on a fastball outside from Los Angeles Angels reliever Ben Joyce, giving it a ride just over the wall in the right field corner for what might have been a go-ahead homer. But Wade Meckler had other ideas, diving into the seats to haul it back in a highlight-reel robbery.

It was the type of defensive play that could have easily deflated the Phillies, especially considering they were down 3-1 and it was the second out in the ninth inning.

» READ MORE: Phillies World Series winner Larry Christenson has died at 72

But two batters later, Edmundo Sosa made sure there was nothing that the Angels outfield could do. Pinch-hitting against lefty Sammy Peralta, he crushed a changeup and sent it to the rock formation in center field, well beyond the reach of Mike Trout. The go-ahead grand slam propelled the Phillies to a 5-3 comeback win over the Angels to open the series.

It took most of the game, but the offense managed to pick up rookie Andrew Painter, who was tagged for three runs in the first inning but was lights out after that. The Angels capitalized on two walks, two singles, and two wild pitches to build an early 3-0 lead, as things initially looked dire for the rookie right-hander.

But after finally ending the first with his 28th pitch — inducing a lineout from Josh Lowe — Painter somehow found a reset between innings.

When Painter walked back out for the second, he looked like a different pitcher. He retired 15 consecutive Angels. When the streak finally ended with a nine-pitch walk to Meckler, Painter induced an inning-ending double play that he started himself with a throw to second base.

The two singles he gave up in the first inning — singles from Mike Trout and Meckler — proved to be the only hits Painter allowed.

On the other hand, the Phillies couldn’t get much going until the ninth. They hit into two momentum-stifling double plays, including an unusual one that ended the fourth inning. With runners on first and second, Luis Arraez hit a screamer up the middle that deflected off the glove of pitcher Reid Detmers and right to shortstop Zach Neto without touching the ground. Neto snared the line drive and touched second base to complete the double play.

A baserunning blunder snuffed out a potential rally in the fifth. The Phillies had finally spoiled the shutout with an RBI bunt single from Derek Hill, who had capitalized on his elite speed. But with runners again on first and second, the Phillies were poised to do even more damage.

Kyle Schwarber sent a line drive single to right field, and Bryan De La Cruz initially pulled up after rounding third base before changing his mind. He was easily tagged out at the plate, ending the inning.

José Alvarado and Alex McFarlane each pitched scoreless frames in relief of Painter to give their offense more chances. They finally capitalized in the ninth, sending nine men to the plate in the inning. The Phillies were patient against an erratic Joyce, who threw 15 balls out of 26 total pitches.

Alec Bohm was hit by a pitch and Justin Crawford worked a walk to put two on for Stott. After he flew out, J.T. Realmuto drew another walk to load the bases for Sosa.

The Angels threatened in the bottom of the ninth against Jonathan Bowlan after a hit batter and an error from Arraez that brought the go-ahead run to the plate. But Bowlan sealed the comeback and earned the save with back-to-back strikeouts.