Game 3 of the Eastern Conference finals may not have been the prettiest game of basketball we've seen in the playoffs, but it sure was one of the most dramatic. After over three hours of action, the Toronto Raptors escaped with a 118-112 victory over the Milwaukee Bucks in double overtime. The series now stands 2-1 in favor of Milwaukee. 

Missed shots, turnovers and fouls were the key story through most of the game, as neither team played particularly well. The Raptors played a bit better, though, and built up a double-digit lead that they carried into the early part of the third quarter. But Toronto never seemed in full control of the action, and because they couldn't pull away, Milwaukee started to work its way back into the game. 

Late in the fourth quarter, Khris Middleton got inside for a big put-back of his own miss to tie the game and send it to overtime. At the end of that extra frame, George Hill hit two free throws to tie it once again, and after Kawhi Leonard missed a potential game winner, things went to double overtime. Early in that frame, Giannis Antetokounmpo fouled out, and it quickly went downhill for the Bucks. They couldn't figure things out on the offensive end down the stretch, and the Raptors held on for the crucial win. 

Leonard was immense for the Raptors, scoring 36 points and playing 52 out of 58 minutes. His steal and dunk to put the Raptors up three with under two minutes to play in the second overtime was particularly big. On the Bucks' side, the Greek Freak struggled his way to a 5-of-16 shooting performance, and was held to just 12 points, his lowest output of the postseason. 

Here are a few takeaways from Game 3:

Kawhi wills Raptors to victory

While it's true that the Raptors received some nice performances from their supporting cast, it was Kawhi Leonard -- and nobody else -- that willed them to this Game 3 victory. He scored 36 points -- eight in the second overtime alone -- and led Toronto to its first victory in this series despite the fact that both Kyle Lowry and Norman Powell fouled out during regulation.

Powell contributed with 19 points on 7-of-13 shooting from the field before he exited the game with 1:06 remaining in the fourth quarter. And as inconsistent as Lowry has been throughout the playoffs, he finished with a game-leading +15 plus/minus rating.

Leonard was there to take all of the big shots in the closing minutes of the fourth and both periods of overtime -- like a lead man is supposed to do.

It was Kawhi's fourth straight game of at least 30 points and the former Finals MVP is the reason why the Raptors are still breathing in this series.

Giannis struggles, Bucks still barely lose

If there was one positive sign to take away from this game for the Bucks is that Giannis Antetokounmpo had his worst outing of the series -- and the worst offensive game of his 2019 postseason -- and Milwaukee still pushed this game into double overtime on the road.

The potential NBA MVP scored just 12 points on 5-of-16 shooting while going 0 for 3 from beyond the arc and 2 of 7 from the free-throw line. While he did grab a career-high 23 rebounds, his impact on the game was minimal and the Raptors repeatedly forced him out of his comfort zone, not allowing him any space to get off shots near the rim.

The Raptors should feel good about themselves considering they were able to completely negate the "Greek Freak" in a must-win game.

At the same time, however, they shouldn't feel too good about themselves considering they shut Giannis down -- and still only won by just six points in double overtime.

Foul trouble dictates outcome of game

Finally, let's be real here -- the foul trouble and the length of the game absolutely decided the outcome of Game 3. While the losses of Lowry and Powell were huge, none was bigger than when Antetokounmpo posted his sixth foul while trying to draw a charge on Pascal Siakam just 36 seconds into the second overtime period.

Despite Giannis' struggles shooting the ball, him being in the game makes the Bucks' offense flow so much easier. Without him, Milwaukee doesn't seem to know what to do when the opposing defense clamps down.

The Raptors promptly went on to outscore the Bucks 15-9 for the remainder of the second overtime. Milwaukee ran some terrible offense after Giannis fouled out, being forced to rely on Brook Lopez as the main offensive option with George Hill as the primary ball handler.

On the other side of the court, you had Kawhi taking over the game for the Raptors.

Simply put, once Giannis fouled out, you knew it was game over for the Bucks. Considering six fouls is the rule for fouling out in the NBA, maybe the league needs to change up this rule for the postseason when a game goes into extra periods.

Games should not be decided by a star player fouling out as a result of posting six fouls after playing in six total quarters.

Recap all the action from Game 3:

How to watch Bucks vs. Raptors Game 4

  • Date: Tuesday, May 21
  • Time: 8:30 p.m. ET
  • Location: Scotiabank Arena -- Toronto, Ontario, Canada
  • TV channel: TNT
  • Live stats: GameTracker 
  • Streaming: fuboTV (try it for free)
  • Odds: N/A