The comeback gave the Red Sox their fifth straight victory and put them three games above .500 for the second time this season after having opened the year with just four victories in 14 contests.
Giancarlo Stanton's homer gave Miami a 4-3 lead in the sixth and the Marlins took a two-run advantage into the eighth.
Jarrod Saltalamacchia started the Boston rally with a leadoff double and scored on a homer by Will Middlebrooks, who also had RBI singles in the fourth and fifth innings.
Ryan Kalish kept things going in the eighth with a single and raced all the way to third when Mike Aviles grounded out on a slow roller to first.
Nava followed with a solid single up the middle off Edward Mujica (0-3) to produce the winning run.
Scott Atchison (2-0) grabbed the victory with two innings of one-hit relief. Alfredo Aceves threw just seven pitches in a perfect ninth for his 18th save.