Johnson, who was going for the 100th save of his career, had rattled off 12 consecutive saves in his 14 appearances since the rough patch in May. He allowed just one earned run over that stretch.
"It's not just Jimmy," manager Buck Showalter said. "We had a tough time solving [Indians starter Scott] Kazmir. Jimmy's been solid for us. He's a rock. And he'll be back, and pitch, and be a part of contributing hopefully to a good club. Tonight, he elevated the ball a little bit the first couple hitters, and then he pitched real well after that."
The Orioles led, 3-2, when Johnson opened the ninth with a four-pitch walk to Michael Brantley. Jason Giambi hit a double to follow, and then Johnson intentionally walked pinch-hitter Carlos Santana to load the bases with nobody out.
"At that point, I'm trying to limit the damage, I'm trying to worry about each individual pitch," Johnson said. "I came real close to keeping it tied. But obviously I dug myself my own hole."
Lonnie Chisenhall grounded into a fielder's choice at second, but the tying run scored on the play. The next batter, Drew Stubbs, hit a ball on the ground to third baseman Manny Machado, who attempted to start a 5-4-3 double play to end the inning. But the relay throw to first was not in time to nab Stubbs, and the go-ahead run crossed the plate.
"When our closer comes in the game, Johnson, we're believing that we're going to win this game," center fielder Adam Jones said. "Brantley had a good at-bat, drew a walk. … Late walks kill you, I know Johnson will tell you that. They came out and they had a plan and beat our closer, sometimes you've just got to tip your cap to that."
It was a tough pill to swallow because the Orioles had just mounted an eighth-inning rally to take the lead. The Orioles trailed, 2-1, when Joe Smith relieved Kazmir, who left the game with back spasms.
Smith gave up a leadoff infield single to J.J. Hardy to open the eighth, which kicked off the Orioles' rally. After Nate McLouth popped out, pinch-hitter Chris Dickerson walked, which put runners on first and second with one out. Alexi Casilla dropped a single in front of left fielder Brantley, and Nick Markakis tied the game with a groundout to second base. The Indians got the out at second, but didn't attempt a throw on Markakis. Machado then drove an RBI single all the way to the wall in left to briefly give the Orioles the lead.
The missed opportunity in the ninth partially overshadowed a night when starter Jason Hammel pitched well, but was outdone by Kazmir.
"Hammel did a great job tonight and it takes away from his pitching performance. On both sides," Johnson said. "It kind of leaves a sour taste in your mouth."
Kazmir had stymied the Orioles for seven innings, using just 78 pitches and allowing just one unearned run on a walk and a hit. The Orioles' lone run off Kazmir came in the seventh, when Chris Davis drove in Machado with a sacrifice fly. Machado hit his Major League-leading 36th double to break up Kazmir's no-hit bid and took third on Kazmir's errant pickoff attempt.
"He threw his fastball to both sides of the plate," Indians manager Terry Francona said of his starter. "And he stuck it, and he pitched in very effectively, and then he located away after that. And he held his velocity from the first pitch of the game."
Kazmir warmed up for the eighth with a 2-1 lead, but before play resumed, Francona and an Indians trainer joined him on the mound. After a brief conversation, he was removed. Kazmir said the lower-back tightness bothered him from the beginning of the game, but he said it was "more frustrating and irritating than anything."
Both starters were dealing from the start and got through three perfect innings. Hammel lost his perfect-game bid when he hit Asdrubal Cabrera -- who played in his first game since missing three weeks with a quadriceps injury -- with one out in the fourth inning.
Jason Kipnis followed him and put the Indians up, 2-0, with a home run to left-center field on a full-count heater over the middle of the plate. The second baseman has reached base in 28 straight games.
Kazmir kept his perfect-game hopes alive with a 1-2-3 fourth inning, but it involved a bit of controversy. Machado chopped a ground ball toward Kipnis at second, but first baseman Nick Swisher cut it off and threw to Kazmir, who was late coming over to receive the toss. Machado slid headfirst into the bag and was called out by first-base umpire Will Little, working his first series in the Majors. Replays showed Machado was safe, and Showalter argued to no avail.
Kazmir walked Matt Wieters in the fifth after retiring 13 consecutive Orioles batters to start the night, but that's as far as Wieters would get.
Hammel finished with four hits and two earned runs in his seven innings pitched. He did not factor in the decision.
Vinnie Pestano pitched the ninth for his fifth save.