David Yeazell-USA TODAY Sports

Gordon Hayward scored 21 points and rookie center Mark Williams had key baskets among his 18 points and also collected 20 rebounds as the Charlotte Hornets extended their best stretch of the season by defeating the visiting Miami Heat 108-103 on Saturday night.

LaMelo Ball had 19 points and 13 assists, Kelly Oubre Jr. and Dennis Smith Jr. both supplied 15 points and Terry Rozier finished with 14 points as the Hornets have won four consecutive games after never winning more than two straight games this season prior to the All-Star break.

Tyler Herro's 33 points and Jimmy Butler's 28 points couldn't prevent Miami's season-worst four-game losing streak. Bam Adebayo had 14 points and Kevin Love posted 13 points and 13 rebounds for the Heat, which shot 40 percent from the field.

Herro was 6-for-12 on 3-pointers but the rest of the Heat combined to go 5-for-24 from long range.

The Hornets carried an 82-72 lead into the fourth quarter. Miami closed within 93-91 before baskets from Hayward and Williams helped stretch the margin.

Herro hit another three as the Heat made a charge. Adebayo's dunk cut the gap to 104-103, but he committed a turnover on Miami's next possession when it had a chance to go ahead.

Williams scored the next two baskets.

Charlotte held a 54-51 halftime lead, but the Heat had the momentum by that point.

The Hornets used a 14-0 run that extended into the second quarter for a 31-16 lead. The gap reached 40-20 on Oubre's four-point play. It was 48-26 before Miami made a move that was ignited by a technical foul on Smith and a pair of Herro 3-point baskets and ended up as a 13-0 spurt until Williams' dunk for the Hornets.

Miami shot 34.9 percent and Charlotte was at 36.2 percent through the first half. The teams combined to make 32 of 35 free throws.

By halftime, Charlotte's reserves outscored Miami's backups by 24-4.

More must-reads:

TODAY'S BEST
Frank Vogel fell victim to a Suns ownership group eager to win
Luka Doncic hands OKC first playoff loss with gutsy Game 2 effort
Three takeaways as Rangers take commanding 3-0 series lead on Hurricanes
Rams make surprising move with former team captain
Ohio State AD is wrong for thinking Michigan wins deserve asterisk
Padres OF Jurickson Profar is a legitimate MVP candidate
Steelers' Cameron Heyward comments on controversial Justin Fields idea
Pacers coach claims officials are biased against 'small market' teams
14-year-old phenom signs unprecedented MLS deal that includes future Man City transfer
Tiger Woods, Rory McIlroy's 'soured' relationship paints murky future for PGA Tour
Stars almost blow another lead, even series with Avalanche
Auburn's Hugh Freeze uncomfortable with 'bidding wars' for top players in transfer portal
Cavaliers punch back, blow out Celtics in Game 2
Coach: Oilers star center could miss Game 2 vs. Canucks
Watch: Cavaliers' Evan Mobley turns defense into offense in Game 2 vs. Celtics
Xander Schauffele tops stacked leaderboard after first round of Wells Fargo Championship
Suns talks with head-coaching target 'expected to move quickly'
Knicks get even more bad injury news ahead of Game 3
2008 Celtics champion sentenced to prison despite emotional plea
Skip Bayless makes huge Tom Brady prediction after Netflix roast