PEORIA, Ariz. -- Lance Zawadzki, Alex Gordon and Melky Cabrera each ripped two-run home runs on Thursday as the Royals snapped a four-game losing streak with a 9-8 victory over the Mariners.

Doug Fister, making his fifth start of the spring for Seattle, breezed through five innings of one-run ball before giving up long balls to Zawadski and Gordon in the sixth. The 6-foot-8 right-hander gave up one hit through the first 4 2/3 innings before surrendering two home runs and three doubles in his last 1 1/3 innings.

Left-hander Bruce Chen, who will likely be the Royals' No. 4 starter, cruised through the first two innings himself before the Mariners got to him for four runs in the third with four straight hits, including doubles by Michael Saunders, Josh Wilson and Ichiro Suzuki.

Chen, who had given up 11 hits in 14 prior innings this spring, steadied himself and retired the last 12 batters he faced. He finished with five hits and four runs in six innings of work, with no walks or strikeouts.

The Royals first got to Fister in the fifth with a run-scoring double by Pedro Feliz off the wall in left-center field after Fister walked Bryan Pena with two outs.

Zawadzki, a non-roster invitee competing for a backup infield spot, then slugged a two-run home run to center in the sixth, and Gordon followed three batters later with a two-run blast to right. It was Gordon's fourth home run of the spring and he took over the team's RBI lead with 16.

Cabrera added a two-run shot off reliever Royce Ring in the seventh. He also drove in a run with a sacrifice fly in the ninth.

The Mariners tagged Royals reliever Jeremy Jeffress with four runs in the bottom of the ninth to narrow the score. Justin Smoak walked and Matt Tuiasosopo doubled, scoring Smoak. After Luis Rodriguez singled, scoring Tuiasosopo, Saunders homered. Jeffress allowed Wilson to single and went to a full count against Adam Moore, then ended the game with a swinging strike.

Up next for the Mariners: The Mariners will have their only split-squad day of the spring on Friday, with a 1:05 p.m. PT game in Mesa, Ariz., against the Cubs and a 7:05 p.m. PT contest with the Dodgers in Peoria. Left-hander Aaron Laffey will start the afternoon game as he looks to solidify a spot in the bullpen, with Tom Wilhelmsen, Cesar Jimenez and Chris Ray also scheduled to pitch. Lefty Erik Bedard gets the call in the night game, followed by Denny Bautista, Royce Ring, Justin Miller and Josh Lueke, as the Mariners look to sort out their bullpen competition.

Up next for Royals: The final night game on the Royals' spring schedule will also be the first telecast by FOX Sports Kansas City, starting at 8 p.m. CT on Friday. The World Series-champion San Francisco Giants will be the opponent at Surprise Stadium and will start Madison Bumgarner against the Royals' No. 5 starter, Vin Mazzaro. Relievers Joakim Soria, Robinson Tejeda and Jeremy Jeffress are scheduled to throw in consecutive games for the first time this spring.