CLEVELAND -- On a night when Shane Bieber's pitch count climbed much faster than his strikeout total, he still came out on top.
That's why he's an ace, an All-Star and the reigning Cy Young winner.
"He competes like crazy," Cleveland Manager Terry Francona said.
Bieber pitched out of some early trouble before extending his own strikeout record, and Cesar Hernandez hit a two-run home run, sending the Indians to a 3-2 victory over the Chicago Cubs on Tuesday.
Bieber (4-2) struck out eight and has now fanned at least that many in 20 consecutive starts, a major-league mark he builds on every time out. The right-hander's streak was in jeopardy, but he got Nick Martini for strikeout No. 8 in the seventh -- on his 117th pitch.
Bieber wasn't as sharp as usual, giving up 9 hits, a homer and needing a career-high 121 pitches to go 62/3 innings. But Bieber was satisfied and thankful for help -- the Indians turned three double plays behind him and four overall.
"My stuff hasn't been exceptional like the beginning of the year right now, so to be able to go out there and you got one goal in mind and that's to win," said Bieber, who has allowed four extra-base hits in his last two starts.
James Karinchak finished the seventh and worked the eighth. Emmanuel Clase gave up two singles in the ninth, but got Matt Duffy to bounce into a game-ending double play for his seventh save.
Hernandez homered in the fifth off Adbert Alzolay (1-3), who matched Bieber for six innings.
GIANTS 4, RANGERS 2 Logan Webb set a career high with 10 strikeouts in six innings as San Francisco beat Texas, keeping the Rangers winless in interleague play this season.
METS 3, ORIOLES 2 Patrick Mazeika got his second walkoff RBI in four career games with a fielder's choice grounder in the ninth inning, helping banged-up New York rally to beat Baltimore.
BLUE JAYS 5, BRAVES 3 Vladimir Guerrero Jr. homered and Toronto took advantage of Atlanta's indecisive fielding in the eighth inning to rally past the Braves. Ronald Acuna Jr. hit his major league-leading 11th home run for Atlanta.
CARDINALS 6, BREWERS 1 (11) Paul Goldschmidt and Tyler O'Neill homered off Brad Boxberger in the 11th inning to help St. Louis beat Milwaukee for its fourth consecutive victory. Goldschmidt broke a 1-1 tie when he sent the first pitch he saw from Boxberger (0-1) well over the wall in left-center field for a two-run blast. After Nolan Arenado doubled and Andrew Knizner was hit by a pitch, O'Neill delivered a three-run shot.
PIRATES 7, REDS 2 Troy Stokes Jr. drove in runs with each of his first two major-league hits, JT Brubaker pitched six strong innings and Pittsburgh beat Cincinnati.
PHILLIES 6, NATIONALS 2 Bryce Harper treated heckling fans to a long home run, and Andrew Knapp delivered a key pinch hit in place of injured catcher J.T. Realmuto as Philadelphia beat Washington.
PADRES 8, ROCKIES 1 Manny Machado homered and tripled to drive in five runs as San Diego routed Colorado.
ATHLETICS 3, RED SOX 2 Chris Bassitt struck out a season-high 10 over seven innings as Oakland beat Boston.
YANKEES 3, RAYS 1 Jordan Montgomery pitched six innings, Aaron Judge and Gary Sanchez homered, and New York beat Tampa Bay.
TIGERS 8, ROYALS 7 Robbie Grossman singled home the winning run in the bottom of the ninth inning as Detroit, after squandering a seven-run lead late, recovered to beat Kansas City.
ASTROS 5, ANGELS 1 Shohei Ohtani struck out 10 in a duel with Lance McCullers Jr., but Houston broke loose against the Angels' bullpen to pick up the victory. Ohtani allowed 1 run and 4 hits with 1 walk in 7 innings. Yuli Gurriel homered during Houston's four-run eighth.
WHITE SOX 9, TWINS 3 Jose Abreu hit a tiebreaking two-run home run in the sixth inning as Chicago beat Minnesota.