The Kansas City Royals were left with a sour taste after dropping a three-game series to the Boston Red Sox last weekend.

The Royals scored just four runs against the Red Sox. On Sunday, KC was held to four hits in a 3-1 loss at Kauffman Stadium.

What a difference a day makes.

The Royals found an offensive rhythm against the Houston Astros. There were contributions throughout the lineup in the 7-5 victory at Daikin Park.

Michael Massey set the tone early. In the second inning, Massey launched a solo homer off Astros rookie starter Ryan Gusto. Later, Kyle Isbel extended the inning with a two-out double to flip the lineup over.

The Royals capitalized from there. Jonathan India and Vinnie Pasquantino recorded RBI singles. Then Bobby Witt Jr. provided the big hit with an RBI triple over Astros right-fielder Cam Smith.

Witt raced around the bases in 11.07 seconds. It was the third fastest home-to-third gallop — behind Arizona Diamondbacks outfielder Corbin Carroll (twice) — this season.

“You want to (provide) that every day,” Witt said of the run support. “That’s how we plan on games and that’s how our approach is. We just had a good approach and got after it and did it early.”

The Royals are 17-4 since April 20. They rank first in wins and earned run average during the stretch.

Michael Wacha lowered those numbers Monday. He tossed 6 ⅓ innings and continued a string of quality starts from the pitching staff. Wacha scattered eight hits and allowed two runs while collecting a few timely defensive plays to escape trouble.

He won his third game and now sports a 2.96 ERA.

“You know, there were some positives and some stuff that I’ve got to clean up for sure before the next one,” Wacha said. “Overall, the offense coming out and putting up seven runs for me early was awesome to see. It makes our life a lot easier out there on the mound.”

The Astros (20-20) didn’t score until the seventh inning. Jake Meyers and Zach Dezenzo added a pair of doubles as Houston scored twice. An inning later, Meyers collected an RBI single as Houston added three more runs.

“The bullpen did a great job coming in and shutting the door there to finish it off,” Wacha said.

KC has won three of the four games in the regular-season series. And the offense, notably, has picked up of late.

The Royals have scored totals of seven, eight, 10 and 11 runs in games since the start of May (12 games). They scored seven-plus runs three times in 31 games before then.

“The at-bats were good right from the get-go,” manager Matt Quatraro said. “We were able to string some things together. A bunch of two-out hits there in the second inning, which we struggled to do lately. So, that was really positive, and to add on the next inning was huge.

“I mean, it ended up being a much closer game than we would’ve liked, but to be able to get into their bullpen early in the series was a big deal.”

India sparked the Royals offense with a productive night at the plate. The Royals leadoff man finished 3-for-5 with two RBI singles.

“It was good offense today and we put together good ABs,” India said. “Everyone had a great day at the plate, which was awesome.”

In the second inning, India helped set up the four-run frame. He laced a single into center field as Isbel scored from second base.

Later, India drove home Cavan Biggio with a second RBI single. It was his third three-hit game of the season with the last one occurring on April 19 against the Detroit Tigers.

“It’s not these last couple of games, but the last couple of weeks he’s really started to put good at-bats together,” Quatraro said of India. “We’ve seen he has already compiled a bunch of walks and now he is getting some hits in big spots. Those hits he got today really turned it around for us. You know, it extended some innings and let other guys come up and drive some runs in.”