Peter Aiken-USA TODAY Sports

MJ Melendez homered, drove in three runs and scored three times to fuel the host Kansas City Royals to a 7-6 victory over the Cleveland Guardians on Tuesday.

Kansas City's Nick Loftin had a pair of RBI singles, and Tyler Cropley collected an RBI with a sacrifice fly in his major league. Maikel Garcia had three of the 13 hits for the Royals (50-102), who have won six of their past seven games.

Alec Marsh (2-8) picked up his second win in as many outings after allowing four runs (three earned) on five hits in 4 1/3 innings in relief of opener Steven Cruz.

Kansas City scored three times in the fifth inning to seize a 7-2 lead before Cleveland (72-80) slowly chipped away. Steven Kwan ripped a two-run triple in the sixth, Andres Gimenez added an RBI triple in the seventh and Bo Naylor sent a 2-1 fastball from Carlos Hernandez over the wall in right-center field in the eighth for a solo shot.

Royals reliever James McArthur entered the game with runners on the corners and no outs in the eighth inning. He ended the threat by striking out Josh Naylor, Kole Calhoun and Ramon Laureano to preserve the 7-6 lead.

Collin Snider retired the side in order in the ninth inning to secure his first career save.

Melendez deposited a 2-1 offering from rookie Logan Allen (7-8) over the wall in right-center field to stake Kansas City to a 2-0 lead in the first inning. The homer was Melendez's 15th of the season and first since Sept. 5.

The Royals doubled their advantage to 4-0 in the third inning when Melendez had an RBI single and scored on Loftin's base hit.

Allen was saddled with the loss after permitting four runs on eight hits in three innings. He struck out one and walked two.

Cleveland halved its deficit in the fifth inning, with Josh Naylor's single to center field plating both Kwan and Jose Ramirez.

The Royals scratched for three more runs in the bottom of the fifth to seize a 7-2 lead. Melendez scored following a fielding error by first baseman Josh Naylor, Loftin had an RBI infield single to second base and Cropley capped the scoring with a sacrifice fly.

More must-reads:

TODAY'S BEST
Kings make huge decision on head coach Mike Brown
Oilers beat Stars to take 3-2 lead in WCF
Orioles lose two starting pitchers to season-ending surgeries
Yankees' Aaron Judge, Juan Soto make MLB history with impressive offensive numbers
Caitlin Clark frustrated by physical WNBA play: 'I feel like I'm getting hammered'
Bills give Olympic gold medalist chance in NFL
An epic temper tantrum highlighted Day 6 of the French Open
Broncos' Sean Payton shares promising Bo Nix update amid competition
Celtics HC Joe Mazzulla blasts media for Jayson Tatum, Jaylen Brown coverage
Pistons parting ways with GM after hiring new head of ops
Mike Tyson-Jake Paul fight temporarily postponed
Suns fill out Mike Budenholzer's coaching staff
Timberwolves boycotted TNT in support of criticized bigs
Watch: Oilers offense responds after big hit on Corey Perry
Seahawks WR doesn’t hold back on praise for QB Sam Howell
Report: Cowboys quietly 'all in' on Dak Prescott decision
Diamondbacks ace heading to injured list with hamstring strain
Golden Knights, key winger have mutual interest but face financial crunch
Pelicans to defer Lakers' first-rounder to 2025
Former top-10 WR pick speaks on retirement regret, comeback try