ANAHEIM, Calif. (AP) Matt Shoemaker finally delivered the dominant start the Los Angeles Angels have been waiting for. The bullpen just couldn't hold it.
Matt Wieters, who turned 30 Saturday, hit a three-run homer with two outs in the top of the ninth inning to lift the Baltimore Orioles to a 3-1 win over the Angels.
Wieters lifted a 1-0 sinker from Joe Smith (1-3) over the wall in left-center to put the Orioles ahead after they were down to their final out.
It spoiled a banner night for Shoemaker. The veteran right-hander struck out a career-high 12 in 7 1/3 shutout innings, but got a no-decision.
''It's an unfortunate thing,'' Shoemaker said. ''Unfortunately it's going to happen sometimes.''
Shoemaker, who entered with an 8.49 ERA, retired the first 14 batters of the game before Wieters ended his perfect game bid with a two-out double in the fifth.
Shoemaker recovered from the setback to carry a shutout into the eighth inning. He allowed only three hits, walked none and threw 71 of 95 pitches for strikes, but came away empty after Smith blew his second save in seven chances this season.
''When you get a starter (to) have an outing like that, you expect to win the game,'' Angels manager Mike Scioscia said. ''It's tough.''
Shoemaker recorded a strikeout in every inning, including six in his streak of 14 straight batters retired to open the game. Wieters hit a sinking liner in the fifth that fell just under the glove of diving left fielder Rafael Ortega and bounced behind him for the double to snap the streak, but it was the only runner Shoemaker allowed past first base all night.
The Orioles pounced on Smith in the ninth to spoil Shoemaker's effort. Chris Davis hit a two-out single up the middle, Mark Trumbo walked, and Wieters completed the rally with his fourth home run of the season.
''Sidearm guys, you're trying to hit the ball the other way and get a ball up,'' Wieters said. ''I think he was probably trying to come in a little bit and he left it over the middle and I was able to get the barrel on it.''
Brad Brach (4-0) pitched 1 1/3 innings of scoreless relief for the win, and Zach Britton worked the ninth for his 12th save.
The Angels had the tying run at the plate with no outs in the ninth after Gregorio Petit walked to lead off the inning, but Britton struck out Yunel Escobar - who was ejected for arguing the called third strike - and induced groundouts from Kole Calhoun and Mike Trout to end it.
Trout also argued with home plate umpire Dale Scott about a strike call in the inning.
''Dale Scott is a good umpire, but obviously he had a rough inning,'' Scioscia said. ''I think it's pretty safe to say those pitches weren't strikes.''
Petit doubled with two outs in the seventh off Kevin Gausman and Escobar followed with an RBI single for the Angels' run.
Gausman went 6 2/3 innings, gave up eight hits and struck out six.
Orioles: LHP T.J. McFarland (left knee) will have an MRI in Baltimore on Sunday. He suffered an unspecified injury to the knee while covering the plate during a game for Triple-A Norfolk on Friday.
Angels: LHP C.J. Wilson (shoulder inflammation) will make his first rehab start next Wednesday, likely with Class A Inland Empire, according to Scioscia. ... RHP Huston Street (oblique strain) will pitch a simulated game on Monday. ... LF Craig Gentry (back strain) played in his second game of a rehab stint with Inland Empire and may rejoin the Angels as soon as next week.
The Angels selected the contract of RHP Deolis Guerra from Triple-A Salt Lake and designated RHP Al Albuquerque for assignment.
Guerra, 27, pitched five scoreless innings of relief for Salt Lake. He last appeared in the majors in 2015 with Pittsburgh.
Albuquerque, 30, had 2.40 ERA in Salt Lake and did not appear for the Angels this season.
Orioles: RHP Ubaldo Jimenez (2-4, 5.60) tries to reverse his recent struggles after surrendering 14 hits, 10 earned runs and eight walks in his last 9 1/3 innings.
Angels: RHP Jered Weaver (3-3, 5.76) makes his 300th career start. He is 0-3 with a 7.77 ERA in his last four outings.