Lohse improved to 3-0 with a 2.08 ERA against the Marlins this season. The right-hander gave up two runs on three hits in seven innings. Jason Motte closed out the ninth inning for his 20th save, but it wasn't easy.
With two outs, Logan Morrison singled and Ruggiano drew a walk. But Donovan Solano lifted a popout to Cruz, the catcher, and the Cardinals evened the three-game series.
Miami right-hander Carlos Zambrano allowed three runs on seven hits in five innings. In relief, left-hander Wade LeBlanc threw three scoreless innings, striking out four.
"We played good. I think Lohse threw a good ballgame," Miami manager Ozzie Guillen said. "He kept the game close. Carlos had one bad inning. LeBlanc came out of the bullpen and pitched tremendous. We just came out short. We fought all the way to the end, we came up short."
The game-time temperature was 106 degrees, marking the hottest game ever played by the Marlins.
"Yeah, it was hot," Zambrano said. "But like I always say, I come from Venezuela. It doesn't affect me."
The Marlins didn't have many chances off Lohse after Ruggiano's home run.
Ruggiano extended his hitting streak to 10 games in a big way. In the second inning, he blasted a two-run homer that was estimated at 445 feet. Giancarlo Stanton, who singled, was on base for Ruggiano's sixth home run of the season.
"That surprised me," Lohse said. "Our approach was going to be to try and get him inside. I didn't go back and look at it, but it caught me off guard because he took a ball outside.
"I figured he's seen that ball away really well. I just didn't get in enough on him and he got all of that one. He's a hot hitter right now, and I think after that, I found a way to get him out."
The hit by Stanton came in his only at-bat. Due to right knee discomfort, Stanton played the field for two innings, but he was lifted for a pinch-hitter, Scott Cousins, in the third inning.
Stanton has "loose bodies" in his right knee, and the All-Star was making his first start since Monday at Milwaukee.
Because of the lingering problem in his knee, Stanton made immediate arrangements to return to Miami. The 22-year-old was gone before the game ended, and he is set to undergo arthroscopic surgery at 7 a.m. ET on Sunday.
Stanton is expected to be out four to six weeks.
"It was something that you always knew the next time that it flared up that you would do that," Marlins general manager Michael Hill said. "You have the days during the All-Star break, where you have the days and he's not missing any games.
"Hopefully, it's not many games that he misses."
The Cardinals rallied back from two down, scoring three runs in the fourth inning. Zambrano allowed seven hits on the day, but he was able to minimize the damage.
Allen Craig singled and David Freese walked, setting up Skip Schumaker's RBI single to left. Cruz added a two-run triple, giving the Cardinals enough support to even the series.
"The triple, that was the game," Zambrano said. "I was trying to do my job there, not to be too fine with the pitch. He hit a good pitch, down in the zone.
"You've got to give them credit. They hit a lot of bloopers today. Those were hits. I made my pitches. I did everything possible to keep the game close. It was what I was trying to do."
Cruz's triple went down the right-field line, and it got by Ruggiano, who made a sliding attempt at the wall to keep the ball in front of him.
"A tough play down the right-field line," Ruggiano said. "My only chance when the ball was underneath that padding was to try to slide my foot in there and stop it. But it didn't work out."