The Marlins moved within four games of the NL East leaders with their first sweep in Philadelphia since April 2004.
"In this position, you want to sweep," third basemen Wes Helms said. "The sweep rescued us big time. We could've left here eight to 10 games out."
Johnson (11-2) gave up one run and four hits, striking out six.