Ramón Laureano drew a bases-loaded walk off Jacob Webb for the go-ahead run in the eighth inning, sending the Cleveland Guardians to a 5-2 victory over the AL East-leading Baltimore Orioles on Thursday night.

The Guardians scored three times in the bottom of the eighth — all charged to Cionel Pérez (4-2) — immediately after the Orioles tied the game with two in the top half. Bo Naylor’s run-scoring single and Gabriel Arias’ RBI grounder followed Laureano’s walk that plated Josh Naylor.

Baltimore, which is headed to the postseason for the first time since 2016, holds a 1 1/2-game lead over Tampa Bay in the division and for the best record in the AL. The Rays beat the Angels 5-4 earlier in the day.

Trevor Stephan (7-7) gave up two runs in one inning and Emmanuel Clase picked up his major league-best 42nd save in 53 opportunities for Cleveland, which has eight games remaining and trails first-place Minnesota by 8 1/2 games in the AL Central.

The Orioles trailed 2-0 until the top of the eighth, when they scored twice against Stephan. Ryan O’Hearn doubled in Adley Rutschman with the tying run, one batter after Anthony Santander brought home Ramón Urías.

Cleveland opened the scoring in the fifth with two runs off rookie Grayson Rodriguez. José Ramírez singled in Bo Naylor and a sacrifice fly by Josh Naylor scored Steven Kwan.

Rodriguez worked five innings, giving up two runs while striking out seven. It was his 22nd start since making his major league debut on April 5.

Hunter Gaddis started for Cleveland, allowing one hit in three innings. He was struck on the upper right calf by Rutschman’s liner, but remained in the game.

Baltimore’s Brandon Hyde managed his 700th career game, 699 of them with the Orioles.

Guardians RHP Shane Bieber (5-6, 3.77 ERA) will be activated from the 60-day IL to take on Orioles RHP Dean Kremer (12-5, 4.17 ERA). The 2020 AL Cy Young winner last pitched for Cleveland on July 9, which was its final game before the All-Star break.