The ending of Game 2 between the Milwaukee Bucks and Miami Heat on Wednesday was one of the wildest finishes in NBA playoff history.

Heat star Jimmy Butler hit two free throws with zero seconds left in the game to give Miami the win after getting fouled by Bucks superstar Giannis Antetokounmpo.

This came after Heat point guard Goran Dragic fouled Bucks forward Khris Middleton on a 3-point attempt on the previous possession to tie the game.

Fans of the Heat and Bucks thought Dragic and Giannis, respectively, shouldn't have been called for fouls. However, according to the NBA's Last Two Minute Report, both calls were made correctly:

Dragic (MIA) steps forward after Middleton (MIL) has started his upward shooting motion toward the rim, and Middleton lands on Dragic during a natural shooting motion as he returns to the floor.

Butler (MIA) is in the air in a natural shooting motion when Antetokounmpo (MIL) makes contact with his midsection and affects his trajectory and balance. The shot is taken before the expiration of time, and the foul occurred before Butler landed.

Live and breathe the NBA?

🚨 Get viral NBA graphics, memes, rumors and trending news delivered right to your inbox with the Clutch Newsletter.

The Dragic and Giannis calls were called correctly, but there were some other late calls that were botched. Per the report, there were three calls the refs messed up.

Bucks shooting guard Kyle Korver should have been called for a foul on Butler with 14 seconds left when Jimmy made a costly mistake and turned the ball over under his own basket. Bucks point guard George Hill was also standing on the out of bounds line when he made contact with the ball shortly after Korver should have been called for the foul.

After those misses, Butler was out of bounds and touched the floor before he turned the ball over.

All in all, it was a crazy finish and the Heat are up 2-0 on the Bucks.