BALTIMORE -- Andy Marte got the pitch he was looking for, an errant fastball that Jim Johnson would love to have back.
Johnson (3-5) got the first two outs in the ninth before allowing a single to Matt LaPorta. After going 3-0 on Marte, the No. 9 hitter in the lineup, Johnson worked the count full before Marte hit a liner that barely cleared the 7-foot wall in left field.
"I know I hit it good, but I didn't think it was going to go out," Marte said. "Enough to score the run from first, but better -- a better result."
It was his second home run in 69 at-bats this season.
Johnson, who took over as Baltimore's closer after George Sherrill was traded to the Los Angeles Dodgers on July 30, had been 4 for 4 in save opportunities.
"It was the worst pitch of the entire outing. I had plenty of opportunities to get the game over with and didn't execute, and I paid for it," Johnson said. "It was the worst location I could have thrown it. I didn't get it in, I didn't get it down, it stayed pretty much in the middle and he did what he's supposed to do."
So did LaPorta.
"The two at-bats there in the ninth inning by the kids, LaPorta and Marte, were obviously huge for us," Indians manager Eric Wedge said. "Both were long at-bats, tough at-bats, against a guy out there who was throwing the ball good."
Orioles manager Dave Trembley wouldn't have done anything differently.
"We certainly were in position to win the game and had the guys in the right spots. I don't think any other alternative existed," he said. "There's no gray area. There's no shoulda-coulda-woulda. The game was lined up accordingly."
Rafael Perez (3-2) pitched 1 2/3 innings of one-hit relief and Kerry Wood got three outs for his 17th save. Baltimore had runners on the corners with two outs in the ninth before Nick Markakis struck out on a checked swing.
Grady Sizemore homered and Shin-Soo Choo had three hits for the Indians, who trailed 4-2 in the seventh. Cleveland has won 15 of 25 and is 22-16 since the All-Star break.
Melvin Mora and Matt Wieters homered for the Orioles, now 44-3 when leading after eight innings. Mora singled and scored the tiebreaking run in the sixth on a double by Luke Scott, and Wieters hit his fifth homer in the seventh to put Baltimore up 4-2.
The Indians got within a run in the eighth when Sizemore singled and scored on a two-out double by Choo.
Then came the ninth.
When Marte got ahead in the count, he knew Johnson wouldn't walk him because it would put the potential tying run in scoring position.
"He had to throw me a ball on the plate because I got Grady behind me," Marte said. "As soon as I get 3-1, I know he's going to throw something over the plate."
Cleveland starter Aaron Laffey allowed three runs, two earned, and five hits in 5 2/3 innings -- ending a run of six consecutive games in which Indians starters went at least six innings. Laffey was 3-0 with a 2.00 ERA in four starts in August.
"I ran into a little bad luck here and there but for the most part I thought I threw the ball well," the left-hander said.
Sizemore put the Indians up 1-0 with his 21st career leadoff home run, a drive to center on the fourth pitch of the game by rookie David Hernandez. Mora led off the second with his fifth home run, ending a 3-for-25 skid that began after his last homer, on Aug. 17.
Cleveland went up 2-1 in the fifth when Marte tripled and scored on a groundout by Sizemore. Baltimore used two walks and throwing error by second baseman Luis Valbuena to pull even in the bottom half.