Salvador Perez became the 10th player in major league history to hit 200 homers as a catcher and Ryan Yarbrough allowed one run in six innings, lifting the Kansas City Royals to a 5-3 victory over the Cleveland Guardians on Monday night.

Perez hit a two-run shot in the sixth off Logan Allen (4-3) to put Kansas City ahead 4-0. He has 240 homers overall in 12 seasons. Hall of Famer Mike Piazza holds the big league record for homers as a catcher with 396.

Yarbrough (3-5), who carried a shutout into the sixth, won at Cleveland for the second time in 15 days. The left-hander struck out one and didn’t issue a walk in his third start since being struck on the face by a liner from Oakland’s Ryan Noda on May 7.

Edward Olivares had a two-run double and Maikel Garcia hit a solo homer for Kansas City, which ended a five-game skid and has the second-worst record in baseball (29-73). Scott Barlow gave up two hits in the ninth before picking up his 12th save.

Myles Straw hit a two-run double in the seventh off Jose Cuas to pull the Guardians within 5-3.

Josh Bell had an RBI single for Cleveland, and Amed Rosario went 3 for 4 to move into a tie for the major league lead with his 12th three-hit game.

Cleveland fell 3 1/2 games behind first-place Minnesota in the AL Central. Earlier in the day, ace Shane Bieber was shifted to the 60-day injured list as he continues to battle right elbow inflammation.

Manager Terry Francona said the 2020 AL Cy Young winner has not experienced a setback but isn’t on track to return until mid-September. Bieber went 5-6 with a 3.77 ERA in 19 starts before getting hurt on July 9 against the Royals.

Rookie left-hander Allen matched his season highs with seven innings and five runs allowed, striking out five.