SEATTLE -- The Baltimore Orioles came within a run of mounting another comeback victory on Saturday afternoon, when a controversial call and a game-ending base-running gaffe left the AL East leaders kicking themselves.

After rallying from a 4-0 deficit to pull within a run in the eighth inning, the Orioles (57-46) fell just short in a 4-3 loss to the Seattle Mariners.

The Mariners (54-50) did most of their damage during a three-run third inning, which included a controversial hit-by-pitch with the bases loaded. Baltimore nearly overcame that but fell short when David Lough was picked off by Mariners closer Fernando Rodney trying to steal second base with two outs in the ninth inning.

"David felt it, went for it, and it didn't work out," Orioles manager Buck Showalter said. "If you're waiting for three or four hits off Rodney, you're probably not going to score."

Seattle starter Chris Young (9-6) threw seven shutout innings of two-hit ball to put the Mariners in control, but an eighth-inning error committed by third baseman Kyle Seager opened the door for three unearned Baltimore runs.

Rodney threw out Lough trying to steal in the ninth to finish off the win while earning his first save since the All-Star break. Rodney, who blew his last save opportunity last weekend in Los Angeles, earned his American League-leading 28th save of the season and the 200th of his career.

"To me, it's something very special," he said of earning his 200th career save.

Rodney nearly ignited a bit of controversy himself after standing over Lough at second base and shooting an imaginary arrow toward him following the final out. Rodney's signature celebration when earning a save created a bit of a storm last weekend in Los Angeles, but Lough walked off the field without incident Saturday.

"That's my sign," Rodney said with a shrug when asked about the celebration in the vicinity of Lough at second base. "I was four feet back. I did the same thing in Boston in 2004, when I was in Tampa Bay, and in Toronto. If a guy tries to score at home and we get him out, I shoot my arrow at him."

Rodney gave up a one-out walk to Lough before right fielder Nick Markakis lofted a fly to left field for the second out of the inning. With designated hitter Delmon Young at the plate facing an 0-2 count, Lough broke for second base. Rodney turned and caught him, throwing to second baseman Robinson Cano for the game's final out.

The Orioles fell behind 3-0 in a disastrous third inning that might have come down to one check swing. With the bases loaded, Seattle designated hitter Kendrys Morales half-swung at a pitch from Baltimore starter Bud Norris -- only to get hit in the knee by the pitch. The hit-by-pitch drove in a run and opened the gates for the three-run inning, but Norris and Orioles manager Buck Showalter both thought that Morales should have been called out on a third strike because he swung at the pitch.

"That changes the whole inning if I get the call there," Norris said. "I even went back and looked at the video (in the visiting clubhouse), and it still looked like he swung. I still have to try and get out of that situation, and I didn't."

The Mariners matched their run total from the previous three games in the third inning alone, scoring three times off four hits, a hit batter and an intentional walk.

Catcher Jesus Sucre and leftfielder Dustin Ackley had third-inning hits to put runners on second and third before Norris intentionally walked Cano to load the bases. Morales then got hit by the pitch for a 1-0 lead. Seager and first baseman Logan Morrison had RBI singles to push the lead to 3-0.

Cano added an RBI double in the fifth inning to give Seattle a 4-0 lead.

Norris (8-7) allowed four earned runs off six hits in five innings. The nine Mariners in Saturday's starting lineup are now hitting a combined .359 for their career against Norris.

"I got a little bit better as the game went on," Norris said, "but the damage had already been done."

Seattle's Young had a much better outing, striking out eight while allowing just two hits over seven shutout innings.

"He did an outstanding job for us," Seattle manager Lloyd McClendon said. "He kept them off balance all day."

The return of third baseman Manny Machado couldn't give Baltimore's offense much of a lift, as the Orioles scratched out just three hits. Machado went 0-for-4 after missing four consecutive games with back spasms.

NOTES: Seattle RF Endy Chavez, originally batting leadoff for Saturday's game, was a last-minute scratch due to a jammed left pinky. That set in motion a few lineup changes, with CF James Jones moving up a spot to the leadoff hole, LF Dustin Ackley moving up four spots to No. 2 and RF Corey Hart being inserted into the lineup to replace Chavez. ... The Orioles plan to send starter Ubaldo Jimenez on a rehab assignment after a successful simulated game in Seattle earlier this week. Jimenez will likely make two rehab starts before being re-evaluated for a possible removal from the 15-day disabled list. He went on the DL on July 8 due to a sprained ankle. ... Mariners LHP James Paxton (shoulder) is scheduled to make a rehab start at Triple-A Tacoma on Sunday. He has a pitch count of around 75-80 and, depending on how it goes, could be added to the Mariners' rotation as soon as next weekend. ... Seattle starter Chris Young improved to 6-3 while lowering his ERA to 2.21 at home this season.