Brock Holt hit a two-out, two-run double and Daniel Nava had three hits as the Red Sox won for just the third time in their last 10 games, a dismal stretch that began with a three-game sweep by the Indians last week.
"At this point it doesn't matter how many outs there are," Boston manager John Farrell said. "RBIs, runs scored, whether it's no outs, two outs, it was just good to get a little breathing room tonight."
Lester appreciated it, too.
Coming off his shortest start of the season, Lester (7-7) allowed two runs -- one earned -- on eight hits and a walk with four strikeouts in 7 2-3 innings.
"Long at-bats, grinding out (Josh) Tomlin all night. David, obviously there in the fourth, big swing puts us up three," said Lester, who won for the third time in four starts. "Unfortunately I go out there and give two right back. But the guys did a good job continuing to battle and put up some runs for me."
Koji Uehara pitched a perfect ninth for his 14th save.
Jason Kipnis had a two-run single for Cleveland, which has lost three straight games after winning nine of its previous 10.
Lester faced one batter over the minimum through four innings and allowed just three singles through five, but let Michael Bourn reach safely to start the sixth when he dropped Mike Napoli's throw to first.
But Boston answered in the bottom half, getting the key hits it has lacked so far this season.
Tomlin recorded the first two outs before surrendering a triple to Jonathan Herrera. After reliever Nick Hagadone walked Jackie Bradley Jr., Holt delivered a double to left, scoring both runners and restoring the three-run cushion.
"We're hitting the ball hard. We were able to get some two-out hits today," said Holt, who has a hit in 11 of his last 12 games.
Bradley Jr. then helped protect the lead in the top of the seventh with a spectacular inning-ending double play, making a leaping catch in front of the Green Monster before firing to first in time to double-up Mike Aviles.
"Unbelievable play," Lester said. "I don't know if you can throw the ball further in that outfield. That was huge for me."
Boston took the lead in the second on Grady Sizemore's RBI double and Ortiz made it 3-0 in the fifth with his 15th homer of the year, a shot to straightaway center off Tomlin.
"Early on it was much of the same," Farrell said of stranding baserunners. "We get into a bases-loaded, nobody out situation (in the second) and hit into some tough luck.
"David breaks through for us, as we've witnessed many times.
Tomlin (4-3) allowed four runs -- three earned -- on nine hits over 5 2/3 innings, striking out three and walking two.
"One of those games I tried to battle through," Tomlin said. "Made a bad pitch to Ortiz. He made me pay for it. Changed the course of the game after that."
A moment of silence was held before the game for former Red Sox manager Don Zimmer, who died June 4. ... Cleveland 3B Lonnie Chisenhall, a left-handed batter, was not in the lineup despite hitting .393 with seven homers and 32 RBIs in 53 games this season. ... Boston RHP Clay Buchholz, on the 15-day DL due to a hyperextended right knee, is slated to throw five innings in a rehab start for Triple-A Pawtucket on Friday. ... Boston 3B Will Middlebrooks, on the DL with a fractured right index finger, also is scheduled to begin a rehab assignment with Pawtucket on Friday. ... Lester threw eight pitches in the first inning, all for strikes.