Kansas City Royals go quietly in series finale (save for another Bobby Witt Jr. homer)

Bobby Witt Jr. moved one step closer to the iconic 30-30 club Wednesday night.

The Kansas City Royals star carried the offense with his 27th home run of the season, this one with no one on against the Pittsburgh Pirates.

But the Royals failed to mount any other offense and lost the series finale 4-1, making this the second straight series in which they’ve been swept.

“It’s baseball,” Witt said. “You just got to keep working and get better each and every day. ... I know it’s not what people want to see performance-wise. We’ve got to keep chopping at the bit and keep going.”

In the fourth inning, Witt blasted a four-seam fastball into the outfield seats at Kauffman Stadium. The homer traveled 397 feet and generated a 100.3 mph exit velocity.

Witt now stands three homers away from becoming the first Royals player to join Major League Baseball’s exclusive 30-30 club.

The Royals, meanwhile, have lost six consecutive games and were swept for the 12th time this season.

“There is not a lot to take away,” Royals manager Matt Quatraro said. “We had some pretty good pitching performances. We are obviously in a rut offensively right now. Hopefully, we can reset on Friday.”

The Royals recorded 12 hits in the three-game series against Pittsburgh. They scuffled Wednesday against Pirates starter Andre Jackson, who picked up his first victory of the season.

Jackson struck out seven of KC’s first 10 batters. He attacked the strike zone primarily with his fastball and changeup. He mixed speeds and kept the Royals off-balance, allowing two hits in 5 2/3 innings.

“We knew he was predominately a fastball-changeup guy,” Quatraro said. “The guys all knew that, as that was a part of the approach. It was good enough to keep us off the barrel. The balls we did hit hard were caught.”

The Pirates did their damage early. Bryan Reynolds and Jack Suwinski each hit solo homers for Pittsburgh and that was enough to overcome Royals starter Angel Zerpa.

Zerpa allowed three earned runs in his third start of the year. He threw 49 of his 84 pitches for strikes.

The Royals dropped to 41-94 this season and will face the Boston Red Sox Friday night after an off-day Thursday.

Missed previous games of the series?

Game 1: Royals silenced in 5-0 loss to Pirates

Game 2: Royals bullpen squanders Cole Ragans’ dominant start against Pirates

Here are more notables from Wednesday’s game:

Angel Zerpa makes spot start

Zerpa filled in for teammate Brady Singer, who is dealing with arm fatigue, in the starting rotation.

Pittsburgh scored three early runs. Pirates star Bryan Reynolds hit a solo home run in the first inning. The blast traveled 436 feet into the left-field seats. An inning later, Pittsburgh added two more runs with consecutive doubles.

“He was all around the (strike) zone at the beginning,” Quatraro said. “As he started to be more efficient in the zone, he got quick outs.”

Zerpa rebounded from the rough start. He pitched 5 2/3 innings, allowing five hits, three runs and three walks. He also struck out three.

“I trusted my stuff and started attacking more of the zone,” Zerpa said through an interpreter. “It’s not that easy to hit and I made the adjustment.”

Zerpa threw 84 pitches and generated 14 called strikes and six whiffs. He finished his outing with 3 2/3 scoreless innings.

Salvador Perez scratched from Royals’ lineup

The Royals were without their captain Wednesday night. Salvador Perez was removed from the lineup due to upper-back and neck tightness.

Perez is listed as day-to-day with the injury.

Perez was originally going to be the Royals’ designated hitter on Wednesday, batting third in the order. But the Royals shuffled their lineup before the game. Nelson Velázquez was the DH and Dairon Blanco shifted to right field. Left fielder MJ Melendez moved up and batted third.

Perez is hitting .246 with 19 home runs and 57 RBIs this season.

What’s next: The Royals are off Thursday before beginning a weekend series against the Boston Red Sox at Kauffman Stadium.