PHOENIX — Arizona Diamondbacks starter Brandon Pfaadt shut out the St. Louis Cardinals through seven innings in Friday’s commanding 7-3 victory at Chase Field as the club returned from the All-Star break.

Pfaadt has delivered at least seven innings in back-to-back starts for the first time in his major league career after going eight innings with two runs allowed in his last start in San Diego.

The right-hander only needed 69 pitches to plow through six innings with two hits allowed on Friday as he maintained an efficient pace.

“This was Brandon Pfaadt’s day,” manager Torey Lovullo said. “I was really proud of the way we responded to some of the questions on if we were gonna be ready coming out of the All-Star break. I think it was the first few pitches that Brandon Pfaadt threw that told me the story I wanted to know.”

St. Louis threatened to end the shutout in the seventh inning with a lead-off double from Willson Contreras and one-out single by Masyn Winn, but Pfaadt stranded the runners to end his outing.

He finished with four hits allowed, no walks and six strikeouts, throwing more sweepers than any of his individual fastballs. Cardinals hitters whiffed on eight of 18 swings at his sweeper on Friday.

“The goal going into the game was to be aggressive,” Pfaadt said. “We knew they were gonna be pretty aggressive because we faced them previously. So getting early outs was big for us. The offense came in and got the lead early, so that helped us out.”

Pfaadt’s ERA dropped back under five at 4.82, and the Diamondbacks (48-50) are now 8-2 this season when he throws at least six innings.

Pfaadt received some help in the form of run support and strong defense. Center fielder Alek Thomas made the highlight play of the night, crashing into the wall to rob Jordan Walker of extra bases in the fifth inning.

Alek Thomas puts his body on the line to make an UNBELIEVABLE GRAB 😳 pic.twitter.com/hlIomPVK0Z

— MLB (@MLB) July 19, 2025

Arizona’s offense piled up five runs on six hits between the second and third innings.

Geraldo Perdomo singled home two runs in the second inning against Cardinals starter Andre Pallante, while Adrian Del Castillo — in his first MLB game of the year — went 3-for-4 with an RBI and two runs scored as the designated hitter. Del Castillo said he was shocked to get recalled after playing 14 games in Triple-A Reno due to injuries.

“Just calmed down, getting a good pitch to hit, not missing it and playing my game,” Del Castillo said on his return. “I don’t wanna be too big. I just want to be small, think small and things will happen.”

Blaze Alexander, Thomas and Jose Herrera also delivered RBIs. All nine starters reached base and eight recorded at least one hit, with All-Star Corbin Carroll being the exception.

Arizona racked up 11 hits and three walks as a team, even on a day when Carroll struck out three times and fellow All-Star Ketel Marte landed on the restricted list to take care of personal matters. The club finished 4-for-13 with runners in scoring position.

The Diamondbacks nearly recorded their seventh shutout victory of the season, although the Cardinals scratched three runs across in the ninth inning off John Curtiss.

Arizona remains 5.5 games back of a postseason spot, as the D-backs need to stack wins over the next couple weeks ahead of the trade deadline to make up ground.

“This is a pretty good ballclub, and just shows to everyone we still have some life,” Perdomo said of the win. “When I say life I mean, people worry about trades and all that (expletive), but whatever. We just go out there and try to get the W every single day.”

“The bottom line is we won a game in a way I would expect us to,” Lovullo said. “We picked up the baseball. We had really good pitching. We had timely hitting. We built innings. We have to continue that fight every single day.”

Up next for Diamondbacks

The series continues on Saturday with a slightly earlier first pitch than normal. The game will start at 4:15 p.m. MST and air nationally on FOX.

Ryne Nelson gets the start for Arizona, while veteran right-hander Sonny Gray will pitch for St. Louis. Gray threw six innings with three earned runs against the D-backs in May.

Catch the game on 98.7 and the Arizona Sports app.