BOSTON -- Jonathan Herrera drove in the winning run on a pinch single with one out in the ninth inning Saturday to give the Boston Red Sox a 3-2 victory over the first-place Baltimore Orioles in the opener of a day-night doubleheader.

Jon Lester pitched eight dominant innings and shortstop Stephen Drew hit his first home run of the season as the Red Sox snapped a three-game losing streak.

Baltimore's Miguel Gonzalez pitched eight strong innings before T.J. McFarland (1-2) came on to pitch the ninth.

The left-hander allowed a leadoff pinch single to Jonny Gomes to begin the inning, and Gomes moved to second on a sacrifice bunt by catcher David Ross.

Herrera, pinch-hitting for center fielder Jackie Bradley Jr., looped a hit over second baseman Jonathan Schoop into right field, and Gomes slid head-first into home with the winning run.

Koji Uehara (4-2) earned the victory with a perfect ninth.

Lester continued his sizzling summer, allowing two unearned runs on five hits with no walks and seven strikeouts, but failed to pick up the win after leaving with the game tied 2-2.

The left-hander owned a 1.98 ERA in six June starts, his best mark in any month with at least four starts since May 2010. He has allowed four earned runs in his last five outings, posting a 0.96 ERA in that span.

Gonzalez was just as dominant, allowing two runs -- only one earned -- in the second inning and not much else. The right-hander scattered seven hits and two walks, and had six strikeouts.

Catcher Caleb Joseph had two hits and scored a run but Baltimore had its four-game winning streak snapped.

Boston right-hander John Lackey (9-5) will oppose right-hander Ubaldo Jimenez (3-8) in the nightcap.

Drew put Boston on top in the second, hitting a first-pitch fastball into Baltimore's bullpen, and Bradley Jr. made it 2-0 when he doubled and scored on an error by first baseman Steve Pearce.

But Baltimore tied the game on a couple of Boston blunders in the third.

Left fielder Delmon Young reached on a throwing error by second baseman Dustin Pedroia and took second Joseph's single. Both runners moved up on a groundout and came home when third baseman Xander Bogaerts booted a routine grounder hit by Pearce.

NOTES: Game 1 of the doubleheader is a makeup from Friday, when the opener of the three-game series was postponed because of inclement weather associated with Hurricane Arthur. ... The Red Sox are playing their second doubleheader this season. They were swept by the Tampa Bay Rays on May 1. ... The Orioles are playing their third doubleheader, after sweeping the Pittsburgh Pirates on May 1 and splitting with Tampa Bay on June 27. ... Baltimore RHP Bud Norris will throw a two- to three-inning simulated game on the field between games. Norris is on the disabled list because of a sore right groin, and Orioles manager Buck Showalter said if Norris feels well after the session, he could be in line to start Wednesday against the Washington Nationals. Baltimore traded its pregame batting practice for the right to use the field between games. ... Red Sox DH David Ortiz missed the opener to attend his daughter's graduation in the Dominican Republic. He would have missed Friday's game had it not been postponed.