Johnny Giavotella's debut was a dream come true.

Giavotella hit his first major league home run and doubled as the Kansas City Royals defeated the Detroit Tigers 4-3 on Sunday.

"It does feel surreal," Giavotella said. "This weekend has been almost magical. Everything I wanted to accomplish in baseball, it's come true this weekend. To have my family here watching me, I couldn't ask for anything more."

Giavotella, who was promoted Friday after hitting .338 in 110 games with Triple-A Omaha, is 5 for 11 (.455) with a .909 slugging percentage in his first three games

"He's a little sparkplug," said Alex Gordon, who set a single-season club record with his 18th outfield assist in the fourth inning. "He's a little guy, but has lot of energy. He was hitting down in Triple-A. He didn't really change when he got up here."

Giavotella faced Rick Porcello, Justin Verlander and Max Scherzer.

"He's facing three solid pitchers," Gordon said. "That was pretty impressive for his first series."

Giavotella led off the three-run fourth with a double, advanced to third on a wild pitch and scored on a Billy Butler groundout. Mitch Maier's triple scored Eric Hosmer, who singled. Brayan Pena's two-out single brought home Maier.

Giavotella homered to left on a 2-1 pitch from Scherzer in the fifth.

"It was unbelievable feeling and a feeling I'll never forget," Giavotella said. "Scherzer was trying to come in on me all day. He was banging me inside and I couldn't get my hands extended. I guess he missed over the plate that time and I got my hands inside and barreled it up and it flew out of the park."

Royals left-hander Bruce Chen (6-5) gave up three runs on five hits in five-plus innings, while striking out five — three in the first inning — and no walks to pick up his first victory since July 6. He allowed three hits to start the three-run sixth, when there was a 46 minute rain delay. Rookie right-hander Louis Coleman replaced Chen after play resumed.

"Bruce did a phenomenal job the first five innings and then that storm blew in and stuff was blowing everywhere," Royals manager Ned Yost said. "You would think that would be to the pitcher's advantage, but they somehow put together three hits and then the downpour. Somebody said one guy swung threw a napkin and got a hit. I've never seen anything like that."

Scherzer (11-7), who like Chen did not return after the rain delay, yielded four runs on six hits in five innings. Scherzer was 3-0 with a 0.89 ERA in his previous three starts against Kansas City.

"It was one of those outings where I got out there and fell behind and made some mistakes and they made me pay for it," Scherzer said. "And then there were some pitches where I was able to locate it but they were able to hit it."

The Tigers trimmed the lead to a run in the fifth with Andy Dirks, Austin Jackson and Miguel Cabrera contributing RBI doubles.

Joakim Soria worked the ninth for his 21st save in 27 opportunities.

Gordon was credited with hit 18th outfield assist in the fourth inning when Cabrera was out 7-6-4 trying to stretch a single into a double. Jermaine Dye in 2001, and Mark Teahen in 2007, shared the record with 17 outfield assists.

"That play was really (Alcides) Escobar," Gordon said. "I threw it off the line a little bit and Escobar made a great play. He's been doing that all year. You've got to give him credit, too."

Royals right-fielder Jeff Francoeur threw out Jhonny Peralta, who attempted to go from first to third on Alex Avila's single in the seventh, giving the Royals' outfielders 40 assists, which tops the majors. Francoeur leads all big league outfielders with 93 assists since he debuted in 2005.

NOTES: Gordon was ejected for the first time in his career in the eighth by plate umpire Rob Drake after throwing his bat when he was called out on strikes. Yost also was ejected after a lengthy argument. OF Melky Cabrera, who left in the fourth inning Saturday with a left ankle sprain, did not start, but came in the ninth to play left after Gordon's ejection. Tigers DH Victor Martinez, who injured his left knee in the eighth inning Saturday, did not play Sunday. He could return Tuesday at Cleveland with the Tigers off Monday. RHP Jose Valverde has converted 32 consecutive saves. That matches the longest streak in one season in Tigers history. Guillermo Hernandez logged 32 consecutive saves in 1984. RHP Luke Hochevar, who starts Monday at Tampa Bay, has won his past three Royals starts and is 4-0 in his past seven starts, matching his career longest winning streak.