Johnson allowed zero runs on three hits and five walks while striking out four over five innings. He also drove in the game's first run by booming a double off Rays right-hander Wade Davis to the center-field wall, scoring Aaron Rowand, who reached on a forceout but beat the throw to first.
Johnson ran into some trouble in the fourth inning, loading the bases on a single and consecutive walks, but got out of it by inducing a double-play groundout by Rays catcher Jose Molina.
Davis, now in the final days of the battle for a spot in the rotation, had another rough outing Sunday. The right-hander gave up four runs on seven hits, three walks and two homers, while striking out two in 4 2/3 innings. He allowed one run in the second on Johnson's double, pitched a perfect third inning, then ran into more trouble in the fourth.
John Buck led off the inning with a solo shot to right-center field. Davis walked the next batter, got Rowand to pop out then gave up another homer, this one a two-run shot to right field by Bryan Petersen.
Davis took a liner off his back one at-bat later then threw wildly to first base, missing Carlos Pena and allowing Jose Reyes to reach safely. Davis remained in the game and picked off Reyes at first to end the inning without any further damage.
"I fell behind way too much," Davis said. "I took some positives, threw some good sliders, a couple good changeups, threw some good fastballs early. A little dead toward the end -- that's something I've got to build on."
J.P. Howell was solid in relief of Davis. The left-hander allowed one hit and zero run with one walk and two strikeouts in 1 1/3 innings.
After Carlos Pena doubled and moved to third on a groundout, Luke Scott got the Rays on the board with a groundout in the sixth.
Rowand capped the scoring with an RBI single in the seventh.
Up next for the Marlins: The Marlins travel to Lakeland to face the Tigers for the only time on the road this spring in a 1:05 p.m. contest on Monday at Joker Marchant Stadium. Mark Buehrle will make his third Grapefruit League start as the Marlins begin to prep their starters for the regular season. Buehrle, who has a 9.95 spring ERA, hopes to improve on his last outing in which he gave up five runs on six hits over 2 1/3 innings against the Cardinals on March 16. Jose Reyes and Hanley Ramirez will make the trip to Lakeland. Rick Porcello will start for the Tigers.