Cleveland took two out of three from Baltimore as both battled for a wild card playoff berth.
Baltimore fought back to tie it on a solo homer by Adam Jones in the fourth and a three-run blast by Manny Machado in the fifth, but the Indians jumped back in front in the bottom half of the fifth.
With runners on first and second, Gomes delivered a one-out double that scored Jason Kipnis. Asdrubal Cabrera was intentionally walked to load the bases and Carlos Santana raced in with the second run of the inning when Baltimore reliever Kevin Gausman threw a wild pitch.
Bryan Shaw (3-3), the second of five Cleveland pitchers, picked up the win with an inning of relief. Gausman (2-4) was charged with the loss after giving up two runs on three hits in 2 2/3 innings.
Chris Perez retired the side in order in the ninth for his 22nd save.
Ohio crash that killed two caught on camera [VIDEO]
Wisconsin business offering 'therapeutic cuddling' forced to close