BOSTON -- It took almost a month, but Baltimore Orioles right-hander Chris Tillman finally won his 15th game of the season.
And this was a big one for him and his team.
Tillman, continuing his mastery of Boston, threw seven strong innings as the Orioles averted a series sweep and topped the Red Sox, 3-2, Thursday night.
Orioles third baseman Manny Machado stroked a two-run double in the third to lead the offense.
The win snapped an eight-game losing streak in one-run games for Baltimore. The Orioles went 29-9 in such decisions in making the playoffs last year but are just 15-24 in 2013.
Red Sox first baseman Daniel Nava, 1-for-11 against Tillman coming in, led off the second inning by going against the shift with a double down the left field line, the first of his two doubles. He scored on Stephen Drew's two-out single to make it 1-0.
The Orioles came right back, taking the lead in the third on Machado's shot to left center. They made it 3-1 in the fifth on a two-out walk to Adam Jones and a double by Chris Davis, his 121st RBI.
Tillman (15-4) struck out eight in recording his first win in five starts (0-3) since Aug. 2. He improved to 4-1 with a 2.15 ERA in nine lifetime starts against the Red Sox, who saw a four-game winning streak snapped and remained 2 1/2 games ahead of the losing Tampa Bay Rays atop the American League East.
Red Sox right fielder Shane Victorino, a switch hitter still batting right-handed against righties because of his hamstring problem, hit a solo homer in the sixth inning for Boston, to bring his team within a run, 3-2. It was his 12th homer of the season and a team-high eighth this month.
Tillman, who topped losing pitcher Jon Lester (12-8 after working six innings), is 8-1 with a 2.93 ERA on the road this season.
Three relievers finished up, with Jim Johnson earning his 41st save in 50 chances by working around a leadoff infield hit in the ninth.
The Red Sox roster was hitting a combined .186 against Tillman, baseball's fourth 15-game winner, coming in. Meanwhile, Lester, 14-1 against the Orioles coming into this season, fell to 1-2 on the year against the Orioles.
David Ortiz went 0-for-4 and is in an 0-for-22 spin. His longest streak with the Red Sox is 23, set in 2011. He struck out against Brian Matusz with the tying run on third and two out in the eighth inning.
Boston's Jacoby Ellsbury stole his 50th base of the season in the eighth inning -- reaching 50 for the third time, the first since 2009.
NOTES: Adam Jones snapped his bat and an 0-for-11 skid with an infield hit in the third inning. He went 2-for-4 in the game with a run scored. ... The Orioles reportedly put in waiver claims on Minnesota's Josh Willingham and Washington's Michael Morse and could be working out a deal for one, not likely both. ... RHP Ryan Dempster, pitching for the first time since being suspended for five games after hitting Alex Rodriguez, returns Friday to face the Chicago White Sox in the opener of a three-game weekend series. Miguel Gonzalez pitches for the Orioles in their weekend opener in New York against the Yankees. ... Red Sox 1B Mike Carp was a late scratch with left shoulder soreness. ... Boston RHP Clay Buchholz will make two more rehab starts, both likely with Pawtucket, and appears on target to pitch for Boston at Tampa Bay on Sept. 10. ... RHP Jason Hammel, out with a right forearm strain, pitched 3 2/3 shutout innings for Baltimore's Double-A Bowie team in his first (of what is expected to be two) rehab start on Thursday night. ... Troubled RHP Daniel Bard, who had disappeared from Boston because of physical and emotional pitching problems, had a disastrous outing in the Gulf Coast League on Thursday, walking five of the six batters he faced, throwing two wild pitches and having four bases stolen on him.