Denver made Sunday's biggest free agency splash, landing Paul Millsap in a late-night deal after the Raptors held their core together earlier in the day. Elsewhere, Gordon Hayward got a big welcome in his meeting with the Celtics and RFA Otto Porter landed a huge offer. Here's a look at the day's winners and losers:

WINNER: Denver Nuggets 

Denver missed on several draft-night deals and Blake Griffin re-upped with the Clippers. So it was down to landing MIllsap if the Nuggets were going to take a step forward in free agency. And they got him on a 3-year, $90 million deal with a team option in the third year. 

Millsap gives them an All-Star veteran leader who can finish inside, hit from the outside, pass, rebound and do all the little things. He's low maintenance, brings great work ethic and pairs perfectly with Nikola Jokic

On top of it, the Nuggets got him by spending what they have the next two seasons in cap space, and kept a team option on the third year, which gives them flexibility once they have to start paying their younger players. It's the Nuggets' biggest signing in years.

WINNER: Masai Ujiri and the Toronto Raptors

Yes, they paid a big price to keep an underachieving playoff team together. But Toronto still has won three postseason series in two years and been a consistent 50-win squad, so the price was reasonable enough. 

Kyle Lowry got a $100 million deal, and anytime you make $100 million it's a win. However, Lowry -- arguably the East's best point guard -- only got three years after a max five-year deal looked like a lock before free agency. More than any, this deal shows the drastic difference between this market and last year's spending spree. Teams are being reserved with any player over 30. Lowry probably could have gotten more from a lesser team, but wanted to stay where he's had the most success of his career. 

Ibaka comes back at a high price, but again on a 3-year deal. Both contracts expire the summer that DeMar DeRozan has an opt out in 2020. You can see the writing on the wall. The Raptors will make a run the next three years with this core, and then likely begin a rebuild. Will Masai Ujiri be the one in charge then?

LOSER: Cleveland Cavaliers

This one is tricky. Dan Gilbert deserves praise because there were rumors of a failed deal to send Iman Shumpert to Houston to ease the Cavs' books. That suggested the Cavs were putting money above winning, something that would not set well with LeBron James. Not only is that deal gone, but the Cavs ponied up $23 million over three years for Kyle Korver, with the third year partially guaranteed -- and that's a lot of money for Korver. 

Korver is 36 and showed defensive slippage last season. He's still a crack shot, but things are likely to get tougher as age robs him of mobility and durability. The Cavs did well to paying for a key component, but at his age it's quite a bit for a guy who may not last as long as his contract. 

WINNER: Tom Thibodeau

Thibs crowning achievement was trading for Jimmy Butler, but adding Taj Gibson on a reported two-year, $28 million agreement is really good, too. It gives the Wolves a great defensive big who can pair well with Karl-Anthony Towns and make some short-range shots. There is still no shooting on this team, but Thibodeau has never been worried about that. Now, this squad looks like his late-era Bulls teams, only with Towns and Andrew Wiggins. The Wolves may not have won overall, but Thibodeau got what he wanted. 

LOSER: Oklahoma City

They may yet land Rudy Gay, who was in talks with them. But the Thunder lost Gibson, who's really good, plays great defense, doesn't need the ball, is a team player and smart as all get out. Having Enes Kanter on the roster and not Gibson hurts. The Thunder improved because of the Paul George trade, but losing Gibson -- who they really couldn't afford after the deal -- still hurts. 

WINNER: Houston Rockets

They were going to pay Nene more in their original deal, but that fell apart because of the Over-38 rule. So instead, they landed him for three years and $11 million, an incredible bargain. It's great value for a guy up there in age, but who had a tremendous season in Mike D'Antoni's system. He's an important piece, and they're lucky he's still there after the first contract flub. 

WINNER: Otto Porter

Porter landed a max offer from the Kings for a reported $100 million. He has not signed it yet, according to reports. He meets with the Nets on Monday, and they likely will offer the same. But that offer means he won't have to worry about the Wizards squeezing him. He can sign that offer sheet, the Wizards will match it, and he'll stay with Washington. That offer in hand is a big deal because Porter is set to become -- unbelievably -- the highest-paid Wizard. 

LOSER: Jae Crowder

After the way the Celtics rolled out the red carpet for Gordon Hayward, Jae Crowder has to be a little bit angry, wherever he is. Crowder and Hayward can play together, but remember, Crowder felt disrespected by fans chanting for Hayward during the season