ANAHEIM — It took a while for the Padres to create their first bit of offense in a couple nights.

What they ended up managing was plenty, in large part because of what they have built at the back end of their bullpen.

Two runs in the top of the eighth, which were answered by the Angels scoring once in a similar manner, were followed by two runs in the top of the ninth.

And then Mason Miller worked his 30th scoreless game and earned his seventh save of the season to lock down a 4-1 victory over the Angels.

“Game over,” Fernando Tatis Jr. said of the thought once the Padres have a late lead. “We trust our guys out there. We know they’re just gonna shut the door.”

The offense came late, and it came in unique ways.

Freddy Fermin and Jake Cronenworth, the bottom two hitters in the Padres’ order, drew four-pitch walks to start the eighth.

Then Ramón Laureano bounced a single between two infielders up the middle after grounding out and striking out twice in his first three at-bats, and Tatis squibbed a 58 mph grounder through the right side of the infield after a season full of hard-hit outs.

The Angels’ Nos. 8 and 9 hitters, Logan O’Hoppe and Adam Frazier, singled against Jason Adam to begin the bottom of the eighth before Adam got two outs and appeared to get a third. But an overturned strike three call prolonged a two-out at-bat by Nolan Schanuel long enough for him to drive in a run with a single.

“It’s a little bit of a rollercoaster,” Adam said. “But at the end of the day, make a pitch and you’re fine.”

Adam did eventually do so, preserving the lead by getting Jo Adell to ground out.

A lead-off single by Bryce Johnson and two more walks by Fermin and Cronenworth were followed by Laureano’s sacrifice fly and another soft single by Tatis that made it 4-1 before Miller extended his scoreless streak to 31⅔ innings.

“We felt good about our bullpen and felt good about our offense at the end of the game,” Padres manager Craig Stammen said. “A couple bleeders go through and we score a few runs, and then we tack some on in there at the end with some good situational baseball.”

For the first time this season, two batters reached base against Miller, on a leadoff walk and one-out single. But he converted his ninth streaight save after blowing his first opportunity with the Padres on Aug. 5, in his second appearance after being acquired at the trade deadline.

The bustling finish followed an unlikely scoreless first eight innings.

unlike Friday, when they were shut out 8-0, the Padres were not facing major league ERA leader Jose Soriano.

They were facing Yusei Kikuchi, who entered Saturday’s game having allowed 15 runs in 18 innings this season. The best of his four starts came on March 27, when he allowed the Astros two runs in 4⅓ innings.  In his past three starts, he made it beyond the fifth inning once and had allowed at least four runs in all of them.

But he can reach back for a 99 mph fastball, and his splitter can be baffling. Both occurred on Saturday, as Kikuchi struck out eight batters and completed six innings for the first time this season.

Padres starter Germán Márquez, who many years ago was one of the better starters in baseball and is now trying to resurrect his career, also had his best start of 2026.

The right-hander allowed just two hits and pitched into the sixth inning for the first time this season.

“You don’t think of those two guys as aces, although they’ve been aces in their careers before,” Stammen said of Kiluchi and Márquez. “And any pitcher at any given time can find his stuff and click and throw six shut out. And both those guys did that tonight. It was a good old fashioned pitcher’s duel.”

Neither pitcher was sharp at the start, and both were helped by their defense.

Kikuchi walked a batter and threw eight balls among his 15 pitches in the first inning. Márquez walked two batters and threw 11 balls in 21 pitches.

Both pitchers were helped by their catcher throwing out a runner trying to steal second base for the middle out.

Jackson Merrill’s third home run robbery of the season — this one a leap to get his glove just above the eight-foot wall in left-center field on a drive by Yoan Moncada — helped keep the game scoreless in the second inning.

Kikuchi escaped unscathed after Fermin and Cronenworth began the third inning with singles when Laureano struck out and third baseman Oswald Peraza caught a line drive by Tatis and doubled up Fermin at second.

The Padres would threaten Kikuchi again in the fifth, when Miguel Andujar began the inning with a double. But a groundout and two strikeouts — sandwiched around Kikuchi sending a 97 mph fastball off Cronenworth’s shoulder and then his jaw —  ended the inning.

Zach Neto’s two-out double provided the Angels their only hit in the first five innings.

Adrian Morejón replaced Márquez in the sixth after Mike Trout’s two-out double and quickly ended the sixth by getting Schanuel, the Angels’ No.3 batter, to ground out softyly before working a scoreless seventh.

“It is very comforting to put a guy like Adrian in the game in (that) situation,” Stammen said. “You’re gonna face the top of the lineup a couple times at the end of game, from the sixth to the ninth, and it’s nice to have one ace that can face it one time and then another guy that can face it the next time. … We’ve built this team with a strong bullpen. A.J. (Preller, the Padres president of baseball operations) has done a great job keeping these guys and (it) should be a reason why we win some games.”