Shields (7-4) shut the Marlins out until the seventh inning, eventually yielding four hits with three walks while striking out five.
They outscored the Marlins 22-7 in sweeping their three-game interleague set in Miami.
Miami starter Anibal Sanchez (3-5) was touched for four runs on seven hits over six innings.
Logan Morrison collected three hits, including a run-scoring single as the Marlins fell for the sixth straight time.
Puzzle-maker slips 'Murdoch Is Evil' into Rupert Murdoch's Sunday Telegraph
Campus cop fatally shoots Texas student during traffic stop