Jeff Luhnow didn’t color the offense with empty praise.

“Underperforming, for sure,” the Astros general manager said Thursday afternoon. “I think we’ve got a couple guys in the lineup that haven’t got going yet. (Marc) Krauss, (Robbie) Grossman had great springs and we were counting for them to come out and get us going. They haven’t.”

“(Jason) Castro has not gotten going. Matt Dominguez has not gotten going. We’ve got a lot of guys right now that are scuffling. I’m pretty sure it’ll turn around, but it’s frustrating.”

Honesty’s always the first step. Two of those hitters Luhnow named and one other homered later Thursday, when the Astros avoided a three-game sweep with a 6-4 win over the Blue Jays.

Astros relievers Josh Fields and Anthony Bass helped three Jays score in a shaky ninth inning, the only pitching woes the Astros had after No. 5 starter Dallas Keuchel delivered one of the team’s best outings of the year. The lefty went seven innings, allowed one run and struck out six.

Despite the Astros’ overall hitting struggle, their power has been steady. Better than steady. They already have a five-homer game, and Thursday’s three-homer surge felt similar. They’re among the league leaders with 14 long balls in 10 games.

“We just go up there expecting good at-bats and whatever happens, happens,” Grossman said.

Grossman, Castro and Jonathan Villar all went deep. But no one needed the boost more than Grossman, who was dropped from the two-hole to the eighth spot just a day ago.

“I think of it as, I just played a little over a week,” Grossman said. “You’re going to have your tough times, but you’re also going to have your good times.”

In a scoreless game in the fifth, it was Grossman — now batting .088 on the season — who ripped a two-run homer to right-center on a 3-0 count against knuckleballer R.A. Dickey.