MIAMI (CBSMiami/AP) – The Miami Marlins are probably the happiest people in the sports world that the calendar turned to July. The Marlins knocked off the St. Louis Cardinals in 103-degree heat Friday night 3-2 to secure the teams third win in a row.

The winning streak comes after a second straight year of miserable play in June. But, that was June, in July the Marlins have gotten as hot as the weather across the country.

READ MORE: Opa-locka Hialeah Flea Market Vendors: 'We have to leave like dogs'

Ricky Nolasco allowed one unearned run in six innings while scattering nine hits and a walk to lead the Marlins to a 3-2 victory over St. Louis.

Logan Morrison added his second home run in three games in the eighth for the Marlins, who won their third in a row and beat the Cardinals for just the second time in the last 10 meetings. St. Louis was 2 for 16 with runners in scoring position, stranding five at third base to frustrate a sellout crowd that waited patiently for a rally that never materialized.

Fans had to settle for a great view of the Fair St. Louis fireworks display on the Mississippi River waterfront — easily visible over the scoreboard in right-center — that began right before Reyes beat out a slow roller down the third-base line to break a 1-all tie.

David Freese had three hits and an RBI for the Cardinals, production that was offset when he committed two errors and nearly had a third in a sloppy sixth that allowed the Marlins to tie it. Freese, picked to his first All-Star Game on Thursday, entered with five errors in 76 games.

Freese left Busch Stadium without talking to reporters.

Heath Bell allowed pinch-hitter Skip Schumaker’s leadoff double and a one-out, run-scoring infield hit by Rafael Furcal in the ninth before finishing for his 19th save in 24 chances. He entered 0-3 with an 8.83 career ERA against St. Louis, and 0-3 with a 6.23 ERA on the road this season with four blown saves in 11 opportunities.

Bell was pitching for the fourth straight day, and manager Ozzie Guillen had been concerned. But noted the Cardinals hit only one ball hard.

READ MORE: Taste Of The Town: Ball And Chain Serving Up Cuban Classics With A Side OF Salsa Music For 8 Decades

“I personally thought I was fine,” Bell said. “I’m definitely not going to be 100 percent, but I felt like I was 97 percent. I could hit my spots, and throw pitches.”

Jake Westbrook (7-7) allowed two runs, one earned, in 6 2-3 innings. He had the Cardinals’ third error with a wild throw on Reyes’ soft tapper not far from the plate.

“If it was another runner I’d have a little more time,” Westbrook said. “I felt like I had to rush it a little bit just because of who it was and I just didn’t make a good throw on it.”

Nolasco (8-6) gave up nine hits but got the big outs when it counted against the Cardinals, holding them to 1 for 11 with runners in scoring position. The right-hander beat the Cardinals for the first time in five career decisions, two starts after allowing an unearned run in 6 2-3 innings but got no decision in an 8-7 loss to St. Louis in Miami.

Freese made a nice stop on Reyes’ smash to start the inning, righted himself and then pulled Craig off the first base bag with a high throw. The Cardinals settled for a forceout the next at-bat when Freese fielded a grounder by Hanley Ramirez and pulled second baseman Daniel Descalso so far off the bag he had to make a diving stab with his glove.

Carlos Lee’s grounder went right between Freese’s legs for a two-base error as Ramirez scored from first. Freese’s throw on Justin Ruggiano’s double-play ball was also high, but Craig landed his foot in time.

Craig reached on an infield hit and took second on Reyes’ wild throw from shortstop, then scored on Freese’s double that bounded high off the third-base bag.

Morrison hit his 11th homer off Maikel Cleto in the eighth to make it 3-1 and also was hit twice by Westbrook, doubling his season total. He has four homers and 11 RBIs during a nine-game hitting streak, plus has homered in his last two games against St. Louis with a pinch hit drive June 27 in Miami.

MORE NEWS: Police Will Be Out In Force In Miami Beach To Ensure A Safe Memorial Day Holiday

(TM and © Copyright 2012 CBS Radio Inc. and its relevant subsidiaries. CBS RADIO and EYE Logo TM and Copyright 2012 CBS Broadcasting Inc. Used under license. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed. The Associated Press contributed to this report.)