SEATTLE -- Ariel Miranda's tough spring training seems like a long time ago right now.
Miranda (6-2) struck out a career-high nine and walked one. The Cuban left-hander is 5-0 with a 3.47 ERA over his last eight starts.
"He's just a really good competitor. Look at his whole story, what it takes to get out of Cuba to get over here," Mariners manager Scott Servais said. "He didn't have the greatest spring and originally wasn't going to make our team until injuries hit. There's too much at stake (now). He's not letting this go."
Miranda, who was acquired in a trade with Baltimore last July, went 0-2 with a 5.03 ERA in seven appearances during spring training, but he made the team when lefty Drew Smyly was placed on the disabled list as camp broke. Then the Mariners had more injuries in their rotation and Miranda stepped up.
"It was not a good spring training. I had a lot of counts in my favor but the results were not there," Miranda said through an interpreter. "I'm really grateful for the Mariners to give me this opportunity to pitch here. The guys have been helpful."
Tampa Bay right-hander Erasmo Ramirez (3-1) pitched 4 2/3 innings against his first major league team, allowing four runs and seven hits.
"We've been beat from the first inning on Friday," Rays manager Kevin Cash said. "From the bottom of the first on Friday until now so I guess the only good thing is that we're getting out of here. They beat us in every facet. Out-pitched us. Out-hit us. Out-defended us. Out-managed us. Everything. We just need to get back home. Enjoy the off day. Get back home."
Zunino, a .196 career hitter who had a career-high seven RBI on Saturday, is hitting .308 since being recalled from the minors on May 22 and leads the team with 13 RBI during that span.
In the fourth, Zunino, a dead pull hitter, hit a two-run single to the right side, giving Seattle a 4-0 lead.
"Kind of the new Z, the way he's approaching things," Servais said.
Cruz began the scoring with his 14th homer in the first. Dyson added a two-run double in the sixth.
"Yeah, the only one I really got to tip my cap is the pitch against Cruz. That was the only one," Ramirez said. "After that it was just lucky contact, finding holes, infield hits. That's something you can fight. They just beat the shift and everything. You have to just continue pitching. There's nothing I can do about that."
Kevin Kiermaier had an infield single in the fifth for the Rays' first hit. Tampa Bay got its only run when Daniel Robertson reached on a triple in the eighth -- center fielder Dyson lost the ball in the sun -- and scored on Jesus Sucre's groundout.
Miranda's third straight win also was Seattle's first complete game of the season.
"He was throwing his changeup for strikes. He was getting the calls on the corners all day," Rays right fielder Stephen Souza said. "He was just pounding the zone with different pitches and the ones he made look like strikes were balls. He did a good job disguising them, and had a good tempo up there. And that's why he was able to get to the ninth."
NOT BAD AT ALL
Danny Valencia singled in his first two at-bats to give him nine consecutive hits over three games. That tied the Mariners record set by Raul Ibanez from Sept. 22-24, 2004. His hitting surge raised his batting average from .247 to .284.
Mariners: RHP Felix Hernandez (shoulder) is tentatively expected to have a rehab start Tuesday for Triple-A Tacoma. He has been on the disabled list since April 26.
Rays: RHP Chris Archer (4-3, 3.74 ERA) has been on a record strikeout pace. His 58 Ks set the club record for May. He has 95 for the season, second in the league. He is 3-0 with a 4.11 ERA in six career appearances against the White Sox. He'll be opposed by LHP Jose Quintana (2-7, 5.60 ERA) on Tuesday night.
Mariners: LHP James Paxton (4-0, 1.26 ERA) came off the DL Wednesday and pitched 5 1/3 innings in a 5-0 victory against the Rockies. He is 1-1 with a 1.54 ERA in two career starts against Minnesota.