Schmidt won his fifth straight decision, striking out 10 before leaving with a cramp in his right leg during the sixth inning of a 6-1 victory that halted the Giants' three-game losing streak.
"I hate the humidity," Schmidt said. "Every time I come in here the body feels good, real loose. But it's a different element, a tough place to pitch."
Schmidt (5-2) departed with a full count on Josh Willingham with two outs in the sixth. Jeremy Accardo, who pitched 2 1/3 perfect innings, replaced Schmidt and struck out Willingham with his first pitch.
Schmidt allowed one run and five hits, including a sixth-inning triple by Hanley Ramirez, who scored on a sacrifice fly. He cramped up during Willingham's at-bat and was removed for precautionary reasons.
"It's really nothing. He won't miss a start," Giants manager Felipe Alou said, adding that the 111 pitches the right-hander threw in the heat was also a factor in the decision to take him out.
"I'm good. I feel fine," Schmidt said after his shortest outing of the season. "Every now and then I get a few of these. I probably should drink more water before I go out there."
Schmidt matched his season high for strikeouts and improved to 7-0 lifetime against the Marlins. Ray Durham's RBI single and Steve Finley's two-run homer off Josh Johnson (4-3) staked him to a 3-0 lead.
Jason Ellison also homered for the Giants, hitting a solo shot off Yusmeiro Petit in the eighth. Durham added another RBI single in the eighth, making it 5-1 and ensuring Florida would remain the only NL team that's never beaten Schmidt.
NL batting leader Miguel Cabrera of Florida had two hits, extending his hitting streak to a season-high eight games. He finished 3-for-4, raising his average eight points to .354.
"It was the first time all our guys have seen (Schmidt) except Cabrera," Marlins manager Joe Girardi said. "That usually favors the pitcher."
The Giants played without Barry Bonds for the second straight day. He sat out Tuesday night's 5-3 loss to the Marlins with a sore back, and manager Felipe Alou had planned to rest his star anyway on Wednesday.
When Bonds didn't stop by the manager's office after arriving at the ballpark, Alou assumed the slugger's back was still bothering him and filled out the lineup card without waiting for an update on Bonds' condition.
Since losing his first two decisions of the season, Schmidt has won five straight and hasn't allowed more than two runs in any of those victories. He went 4-0 in six starts in May and would have had a fifth win if not for a blown save at Oakland on May 20.
Cabrera singled in the second and fourth innings against Schmidt, who escaped a potentially troublesome jam by getting Willingham and Jeremy Hermida to foul out with two runners on in the fourth.
The Marlins finally broke through in the sixth when Ramirez tripled and scored on Dan Uggla's sacrifice fly.
"The guys did a good job of giving us an opportunity to win against Schmidt," Girardi said. "They made him work. They made him throw a lot of pitches."
Finley homered in the third off Johnson, who allowed three runs and seven hits in seven innings. Durham had an RBI single off the Florida starter in the second.
Omar Vizquel added an RBI single in the ninth for the Giants.
Schmidt had not faced the Marlins since beating them in San Francisco on May 1, 2004. ... Giants C Mike Matheny left the game in the third inning after a foul tip hit him in the head. Alou said his status for a weekend series against the Mets will be evaluated on Friday. ... Finley homered for the first time since April 18 at Arizona, a span of 127 at-bats. ... The Giants are 5-8 in games Bonds has not started. ... The Marlins went 11-18 in May after going 6-16 in April. Despite Wednesday night's loss, they are 6-3 their last nine games -- the team's best nine-game stretch of the season. ... A night after going 3-for-4 with two homers, San Francisco 1B Lance Niekro went 0-for-4 in his second game since coming off the disabled list.