ST. PETERSBURG, Fla. — There were no remnants of his once mangled lip. No bruising around his mouth or nose. No signs he was ever hurt.

A person unfamiliar with what happened to Mitch Haniger wouldn’t know that he was force-fed a 96 mph from the Mets’ Jacob deGrom in a scary moment that landed him on the disabled list with a severely lacerated upper lip, a small fracture and a concussion.

There was no mental scarring either. Haniger swore that the memory of that scary moment never once bothered him after he was cleared to play baseball again.

“Zero, to be honest with you,” he said. “It’s a fluke thing. It wasn’t the easiest thing to get over. But as soon as I got back into the batter’s box, I felt fine. I’m not timid. I’m not scared of anything up and in, just like I was before.”

Then he went out and proved it Saturday. Activated from the disabled list that morning and inserted into the starting lineup that night, Haniger singled in his first at-bat and then crushed a third-inning grand slam to ignite the Mariners to a 7-6 victory.

With their fourth straight win, the Mariners improved to 63-61 and 21-9 in their last 30 road games.

Of course, there had to be some late-inning drama. Closer Edwin Diaz, who struggled badly in his previous outing, was brought in to close out the game with a two-run lead. But former teammate Logan Morrison got him for a pinch-hit solo homer with one out. Diaz coolly retired the next two batters to notch his 27th save.

Clad in a modified batting helmet with an extended flap to protect his cheek and jaw, Haniger looked a little like a gladiator in the batter’s box.

“As far as vision goes, it’s been fine,” he said. “It was weird getting used to swinging because it will hit your arm when you swing and miss. And it feels heavier; here’s a whole piece of the helmet that weighs down one side. Running is weird with it.”

But he felt no weirdness driving a 1-0 cutter that was up in the zone over the wall in left off Rays starter Jake Odorizzi.

Seattle added to its lead an inning later. Yonder Alonso scored Jean Segura from second with a single to center. And Nelson Cruz continued his torrid pace, launching a two-run homer to right field. Tthe umpires initially ruled it a double as the ball hit off a railing behind the fence and bounced back into play. But after a 45 second review, the umpires reversed the call and Cruz had his 31st homer of the season, giving the Mariners a 7-2 lead.

It gave Cruz 100 runs batted in with 38 games left to play.

Starter Ariel Miranda gave the Mariners a decent outing, using the ample run support to his advantage. Over the first five innings, he allowed just two runs, earning him a chance to start the sixth inning with a 7-2 lead and get a quality start. But it didn’t happen. After not allowing a homer for five innings, he served up a solo smash to left-center to Steven Souza Jr. For the Cascade standout, it was his 26th homer of the season and it ended Miranda’s outing.

But his replacement, Emilio Pagan, wasn’t much better. Pagan gave up a single and then served up a two-run homer to Lucas Duda to right-center that cut the lead to 7-5. Pagan was able to get two outs and Marc Rzepczynski came in and ended the inning with a strikeout of Kevin Kiermaier.