San Francisco stayed hot on Tuesday, as Juan Uribe led off the bottom of the eighth inning with a tie-breaking homer off Brian Sanches and Edgar Renteria added a two-run shot later in the frame, lifting the Giants to a 6-4 win.
Posey had an RBI single in the third inning to extend his streak, while Andres Torres went 3-for-4 and scored twice for the Giants, who won for the fifth time in six contests and moved within 2 1/2 games of San Diego for first place in the NL West.
"It was a nice win, especially who we were going against tonight," Giants manager Bruce Bochy said.
Johnson had gone 13 straight starts without allowing more than two earned runs, a streak dating back to May 8 when he surrendered three runs to the Washington Nationals. The only streak longer was Mike Scott's amazing 14-game run with the Houston Astros in 1986.
"When you allow only three runs and you call that an off day it is amazing," Marlins interim manager Edwin Rodriguez said. "We should have scored for him. He kept us in the game."
Posey, meanwhile, is batting .450 with 23 RBI during the majors' longest active hitting streak, and the second-longest ever by a San Francisco rookie since Hall of Famer Willie McCovey's 22-gamer in 1959.
Hoping to slow Posey down tonight will be righty Alex Sanabia, who is 1-1 with a 2.11. Sanabia did not get a decision on Friday against Atlanta, which managed just a run and seven hits in 4 1/3 innings.
Sanabia has never faced the Giants, who will pin their hopes on Jonathan Sanchez. Sanchez is 7-6 on the year, but has not received a decision in his last three starts. He gave up a run and four hits in five innings on Friday in Arizona, but did not factor in the decision of his team's 7-4 win.
Sanchez is 0-1 in three games (one start) with a 7.36 ERA.
San Francisco swept a three-game set from the Marlins earlier in the year and has won six of the last eight meetings in the series.