CHICAGO — Jon Lester pitched 6 2/3 innings of no-hit ball and settled for his second complete game of the season, helping the sizzling Chicago Cubs beat the San Francisco Giants 2-1 on Friday to move a season-high 40 games over .500.

Hunter Pence ended Lester’s bid for a second no-hitter with a homer to left on a 1-2 cutter. Brandon Crawford followed with a double, and Lester (15-4) got Eduardo Nunez to line to third and worked around Trevor Brown’s one-out double in the eighth.

Lester allowed three hits and walked two. The Cubs have won five straight to improve to 87-47.

David Ross and Dexter Fowler had RBI hits in the second off Albert Suarez (3-3).

Pence’s second homer in two days ended a 12 2/3-innings hitless streak for the San Francisco. The Giants are a major league-worst 15-29 since the All-Star break.

Lester walked Buster Posey with two outs in the first inning and followed by setting down 18 straight by getting some help.

Third baseman Kris Bryant made a diving, backhand grab of Crawford’s liner to lead off the fifth and Dexter Fowler made a sliding catch of Kelby Tomlinson’s liner in center an inning later.

The 32-year-old Lester threw a no-hitter on May 19, 2008, for Boston against Kansas City. That came less than two years after he was diagnosed with cancer.

ORIOLES 8, YANKEES 0

BALTIMORE — Mark Trumbo hit his major league-leading 41st homer to cap a six-run second inning, and Baltimore peppered New York with four long balls.

Pedro Alvarez and Chris Davis hit two-run homers in the second inning and Manny Machado added a two-run shot in the fourth. Baltimore leads the majors with 213 home runs, including 117 at home.

When Alvarez went deep, the Orioles became the 19th team in big league history to have six players hit at least 20 in the same season. Alvarez joins Trumbo, Machado (33), Davis (33), Adam Jones (24) and Jonathan Schoop (21).

Dylan Bundy (8-5) allowed two hits and four walks over 5 2/3 innings. Rookie Chad Green (2-4) yielded four runs and five hits in 1 2/3 innings before leaving with right elbow pain.

RANGERS 10, ASTROS 8

ARLINGTON, Texas — Rougned Odor homered for the third straight game in a seven-run fourth inning, Carlos Gomez had two hits in his first game against his former team and Texas held off Houston.

The Rangers nearly squandered a seven-run lead but won their sixth straight to push their AL West advantage to 9 1/2 games over the second-place Astros. Houston lost the first of 13 straight games against division leaders to start September, six of those against Texas.

Odor’s team-leading 28th home run was one of three in the fourth inning against Doug Fister (12-10), who came out after Jonathan Lucroy followed Odor’s shot to right with a line drive just over the 14-foot wall in left for a 9-2 lead. Alex Bregman had a solo homer and a two-run triple but popped out to end the eighth with two runners on after the Astros had pulled within two.

A.J. Griffin (7-3) was the winner, and Sam Dyson pitched a perfect ninth for his 31st save.

Carlos Beltran also homered in the fourth, his 26th overall and fourth since coming to the Rangers from the New York Yankees at the Aug. 1 trade deadline.

NATIONALS 4, METS 1

NEW YORK — Bryce Harper hit two doubles and became the latest player to steal a base against Noah Syndergaard, helping A.J. Cole post his first major league win as Washington beat New York.

Washington won its fourth in a row and increased its NL East bulge over the wild card-contending Mets to 10 1/2 games.

Like a lot of teams, the Nationals came out running on Syndergaard (12-8), swiping four bases in the early innings. Tall and slow to the plate, he’s had 45 runners steal with him on the mound — the most against any pitcher since Hideo Nomo in 2001, ESPN Stats & Info said.

Trea Turner led off the game with a single, stole two bases and scored on Harper’s sacrifice fly. Harper doubled with one out in the fourth, stole third with two outs and came home on a single by Wilson Ramos. Harper’s double set up Anthony Rendon’s two-run single in the ninth.

Cole (1-1) gave up one run and three hits in six innings.

Asdrubal Cabrera homered for the sixth time in eight games, sending a drive over the right-center wall in the Mets’ fourth.

Mark Rzepczynski, Koda Glover, Oliver Perez and Mark Melancon combined for three innings of scoreless relief. Melancon closed for his 38th save.

INDIANS 6, MARLINS 2

CLEVELAND — Carlos Carrasco struck out 11 while pitching scoreless ball into the eighth inning, and Cleveland beat Miami.

Carrasco (10-7) had the 10th double-digit strikeout game of his career and the third this season. The right-hander allowed six hits and walked one in 7 1/3 innings, leading AL Central-leading Cleveland to its fourth straight victory.

Cleveland scored three times in the first and once in the second off Andrew Cashner (4-11). Abraham Almonte’s two-run double pushed the lead to 6-0 in the fifth.

J.T. Realmuto hit a two-run homer off Jeff Manship in the eighth for Miami.

TIGERS 7, ROYALS 6

KANSAS CITY, Mo. — Miguel Cabrera homered and finished with three hits and four RBIs to help Detroit beat Kansas City.

Cabrera’s single in the ninth off Wade Davis (1-1) scored Ian Kinsler and Jose Iglesias to put the Tigers ahead. Davis, who just came off the disabled list and had not pitched since July 22, blew his third save in 24 chances.

In the seventh, Cabrera hit a 439-foot shot off Peter Moylan. Cabrera also had an RBI single in Detroit’s three-run third. Justin Upton homered in the second and added an RBI single in the third.

Francisco Rodriguez (3-3) picked up the victory, despite blowing a save in the eighth when Paulo Orlando hit a two-run single to give the Royals a 6-5 lead

RAYS 8, BLUE JAYS 3

ST. PETERSBURG, Fla. — Alex Cobb went five solid innings during his first start in two years, Logan Morrison hit a go-ahead two-run homer, and Tampa Bay beat AL East-leading Toronto.

Cobb, coming back from Tommy John surgery, allowed two runs and four hits in his first appearance since Sept 28, 2014, at Cleveland. He struck out seven, walked one and retired his final 10 batters.

Morrison put the Rays up 4-2 in sixth on his 12th homer off Marcus Stroman (9-6).

Luke Maile hit a solo homer and Kevin Kiermaier had an RBI triple off Francisco Liriano before Brad Miller added a two-run shot against Ryan Tepera in a four-run seventh that made it 8-2.

Danny Farquhar (1-0) worked a scoreless sixth for the win.

REDS 3, CARDINALS 2

CINCINNATI — Eugenio Suarez singled up the middle with the bases loaded in the ninth inning, rallying Cincinnati past St. Louis.

Seung Hwan Oh (4-3) walked Zack Cozart on four pitches to open the ninth, and Brandon Phillips followed with a single. After Scott Schebler singled one out later to load the bases, Suarez got his first career game-ending hit. The Reds had loaded the bases in the seventh and eighth and failed to score.

Raisel Iglesias (1-1) gave up a walk in the ninth.

Yadier Molina and Randal Grichuk connected for an early lead off Anthony DeSclafani, who has been tough against St. Louis during his career. The right-hander is 3-1 in six starts against the Cardinals with a 2.25 ERA.

BRAVES 8, PHILLIES 4

PHILADELPHIA — Freddie Freeman hit a tiebreaking RBI double in the ninth, Matt Kemp had four RBIs and Atlanta beat Philadelphia.

Ender Inciarte and Adonis Garcia started the ninth with consecutive singles off closer Jeanmar Gomez (3-3). Freeman then lined a double to left to put the Braves up 5-4. Kemp followed with an RBI single past a drawn-in infield. Kemp’s three-run homer in the fifth tied it at 4.

Nick Markakis added an RBI double in the ninth and Tyler Flowers had a sacrifice fly.

A.J. Ellis hit a three-run homer for the Phillies.

Braves starter Joel De La Cruz allowed four runs and six hits in five innings and remained 0-7. Mauricio Cabrera (3-0) struck out three straight batters in the eighth.

ROCKIES 14, DIAMONDBACKS 7

DENVER — Nick Hundley hit a grand slam and pinch-hitter Daniel Descalso also homered in a seven-run eighth inning that sent Colorado past Arizona.

Nolan Arenado and Carlos Gonzalez each had two hits for the Rockies.

The game was tied at 7 with two outs in the eighth when Enrique Burgos (1-2) hit Charlie Blackmon with a pitch to start Colorado’s rally. Arenado’s single two batters later put the Rockies ahead, and after two walks, Hundley hit his ninth homer and first career slam off Silvino Bracho.

Descalso followed with the third pinch-hit homer of his career to finish the rally.

Carlos Estevez (3-7) worked a perfect eighth for the win.

BREWERS 1, PIRATES 0

PITTSBURGH — Six Milwaukee relievers picked up the slack when starter Junior Guerra’s return from the disabled list lasted less than four innings, leading the Brewers past Pittsburgh.

Guerra left after 70 pitches over 3 1/3 innings in his first start since going to the disabled list with right elbow inflammation on Aug. 8. Milwaukee’s bullpen limited Pittsburgh to just two hits the rest of the way as the Brewers dealt the Pirates their fourth consecutive loss.

Blaine Boyer (2-3) pitched a scoreless fifth to pick up the win. Tyler Thornburg worked the ninth for his seventh save. Scooter Gennett drove in Milwaukee’s only run with an RBI-double in the sixth off Pittsburgh’s Jameson Taillon (3-4).

WHITE SOX 11, TWINS 4

MINNEAPOLIS — Todd Frazier homered for the second straight game, Adam Eaton had four hits and the Chicago beat Minnesota,

Carlos Rodon (6-8) tied a season high with seven innings for his career-high fourth straight win as the White Sox ended a four-game losing streak.

Brian Dozier homered for Minnesota, which ended a 13-game losing streak Thursday. The Twins have the majors’ worst record at 50-85.

Kyle Gibson (5-9) was the loser.

RED SOX 16, ATHLETICS 2

OAKLAND, Calif. — David Ortiz singled twice and drove in three runs and David Price won his fifth consecutive start for Boston.

Travis Shaw homered and had five RBIs, Hanley Ramirez added three RBIs hile Xander Bogaerts doubled and scored three runs to help the Red Sox move within one game of first-place Toronto in the AL East. Boston (75-59) moved within three wins of matching their total of last season.

Price (14-8) pitched seven solid innings against the overmatched A’s. The left-hander gave up two runs and finished with seven strikeouts and three walks.

Over his last five starts Price is 5-0 with a 2.06 ERA.

Stephen Vogt had an RBI double for the A’s, who have lost eight straight to Boston, dropped a season-high 20 games under .500 (57-77).

PADRES 4, DODGERS 2

LOS ANGELES — Yangervis Solarte hit a tie-breaking home run leading off the eighth inning for last-place San Diego.

The Dodgers’ lead in the NL West remained at two games over the San Francisco Giants, who lost to the Cubs.

Brad Hand (4-3) got the victory, allowing one hit and striking out four in 1 2/3 innings of relief. Brandon Maurer pitched the ninth for his seventh save.

Solarte hit his career-high-tying 14th homer off Adam Liberatore (2-2) leading off the eighth. Pinch-hitter Brett Wallace added an RBI-single for a 4-2 lead.

Joc Pederson drove in both Dodgers’ runs. His RBI single gave them a 1-0 lead in the fourth and his 19th homer tied the game 2-all in the sixth. They had 13 hits and stranded 11 runners.

MARINERS 11, ANGELS 8

SEATTLE — Ketel Marte had two singles and three RBIs in a nine-run second inning and Seattle stopped a five-game losing streak.

Nelson Cruz hit his 33rd homer for the Mariners, who remained four games behind Baltimore and Detroit for the final AL playoff spot.

Even after building a seven-run lead, the Mariners had a hard time putting this one away. Los Angeles scored four times in the ninth before Edwin Diaz retired star slugger Mike Trout with two on for his 12th save.

Trout hit a three-run homer to help the Angels take a 4-0 lead in the first inning.