Johnson (2-3) posted his fourth straight start without a loss, yielding only one run on five hits through seven innings while striking out four.
The right-hander issued a pair of walks in the 104-pitch performance.
Heath Bell recorded the game's final two outs, picking up his fifth save as the Marlins took the rubber match of their three-game set at Progressive Field.
Dobbs went 3-for-4, putting the Tribe up 2-0 in the third inning with a run-scoring single, while Brett Hayes contributed two hits and an RBI in the victory.
Indians starter Derek Lowe (6-2) absorbed a hard-luck loss, allowing only two runs on six hits in a six-inning effort.
Jose Lopez went 3-for-4 with a pair of RBI for American League Central-leading Cleveland.