Lightweight Ryan "Kingry" Garcia, the 2017 ESPN.com prospect of the year, weathered some difficult moments in the late going against Carlos Morales on Saturday night but emerged with a majority decision victory in the toughest fight of his career.

Headlining the "Golden Boy Fight Night" card on Facebook Watch before a sold-out crowd of 2,339 at the Fantasy Springs Resort Casino in Indio, California, Garcia won by surprisingly wide scores of 98-92 and 98-92, while the third judge scored the fight 95-95. ESPN had it 96-94 for Garcia.

Even the 20-year-old Garcia, who was moving up in weight from junior lightweight, did not think the fight was as wide as two of the judges saw it.

"Much respect to Carlos Morales. I felt the fight was closer than the scorecards say," Garcia said. "He did a great job. I give all my respect to him. It was a great fight."

For most of the bout, Garcia (16-0, 13 KOs), of Victorville, California, outboxed Morales, who had a hard time landing much. Perhaps he was frustrated in the second round, when he threw Garcia to the mat, prompting referee Thomas Taylor to issue him a stern warning for the infraction.

In the third round, Garcia busted open a cut on the bridge of Morales' nose, but Morales also connected with several clean punches.

Taylor had a busy night breaking Garcia and Morales apart, as they got tangled up often and resorted to holding, but overall it was Garcia who carried the fight to Morales, as he snapped out his left jab and threw many combinations.

Late in the seventh round, Morales turned the tables. He landed a stiff jab to Garcia's face, and it rocked him. The shot seemed to take Garcia's legs away from him for a moment. Morales came out fast in the eighth round, trying to further test Garcia, and cracked him with a clean left hook that did more damage seconds into the round.

Morales (17-3-3, 6 KOs), 28, a Mexico native fighting out of Los Angeles, applied intense pressure to Garcia, who was wilting and glancing at the big screen above the ring to see how much time was left in the round.

"I just felt like I was a little winded. I admit it," Garcia said. "He was coming to fight, so we were fighting."

Garcia appeared very tired in the final couple of rounds. He was backing up, and his hands were dangling at his side as Morales continued to go after him. Morales was not pleased with the scores.

"He was holding too much," Morales said. "Overall, I feel I gave a good performance. He was a tough opponent. He's young and fast. He has some pop, but he doesn't hit that hard. I felt I won the fight."

According to CompuBox punch statistics, Garcia connected with 142 of 382 punches (37 percent), and Morales landed 93 of 451 (21 percent), with more than half his landed shots coming in the final four rounds.

Garcia and junior lightweight world titlist Gervonta Davis (20-0, 19 KOs), 23, have been going at each other on social media, but that level of fight would clearly be too much too soon for Garcia, based on his performance against Morales.

"It was a tough fight, but it's part of the growth process," Golden Boy Promotions president Eric Gomez, Garcia's promoter, said.

Garcia might already be a popular draw and burgeoning star -- he has 1.2 million followers on Instagram -- but he knows he has work to do in order for his ability to catch up to his marketability.

"I'm young, and I'm hungry. I have to get back to the gym and work on my craft," he said. "I have time on my side."

'The Rooster' dominates Cabrera

In the all-southpaw co-feature, junior middleweight Neeco "The Rooster" Macias (17-0, 10 KOs) poured it on from the opening bell in a nonstop attack on Marvin Cabrera (8-1, 6 KOs) before Cabrera retired on his stool after the sixth round.

Cabrera, 25, a Mexico native fighting out of Los Angeles, was simply worn out from the intense and overwhelming work rate from Macias, 27, of Lancaster, California.

Macias rushed to him from the opening bell and never stopped attacking with punches with both hands and solid uppercuts. He threw an astonishing 219 punches in the fifth round. The total was a junior middleweight record for punches thrown in a round and the third-most punches thrown in a round for all weight classes in CompuBox's 33-year history. The record is 237 thrown by Vince Phillips against Ray Oliveira on Dec. 22, 2000.

According to CompuBox, Macias landed 315 of a ridiculously high 1,119 punches (28 percent) in six rounds. Cabrera, who is trained by former world titleholder Daniel Ponce De Leon, landed 97 of 355 (27 percent).

"I got all that energy. Knowing I was fighting him, I had to bring my best," Macias said. "Train hard, fight easy. I just was warming up. I want to prove I'm a 10-round fighter throwing 190 punches a round if I can."

Also on the undercard, Brazilian southpaw Patrick Teixeira (29-1, 22 KOs), 27, rolled to a unanimous decision against Nathaniel Gallimore (20-3-1, 17 KOs), 30, a Jamaica native fighting out of Evanston, Illinois, in their junior middleweight bout. Teixeira, who won 78-74 on all three scorecards, notched his third win in a row since suffering his lone loss by second-round knockout to Curtis Stevens in May 2016 in the biggest fight of his career on the Canelo Alvarez-Amir Khan pay-per-view undercard.

Teixeira appeared to dominate the ineffective Gallimore. He beat Gallimore to the punch throughout the fight and easily outboxed him. Teixeira suffered a cut over his left eye from an accidental head-butt in the fourth round, but he did not appear troubled by the blood.

"It was a good fight, but I have to get better," Teixeira said. "He was a tough opponent. I want a title next. I have to work hard for that. I will stay in Oxnard, California, and keep training."

According to CompuBox, Teixeira landed 160 of 543 punches (30 percent), while Gallimore landed only 76 of 357 (21 percent).

Gallimore lost his second fight in a row. He was coming off a majority decision loss to Julian "J Rock" Williams on April 7 in a junior middleweight world title elimination fight.