Every team across the NBA has players they’ve given up on way too soon; the Milwaukee Bucks certainly are not alone in this regard.
However, the Bucks certainly have made plenty of head-scratching decisions regarding some of their players within the past century. Whether it was due to fit, role, financial reasons, or just bad management, let us look at seven players the Milwaukee Bucks gave up on way too soon. *This is not in order, just a collection of key names that fit the billing.
No. 7 – Mo Williams
After spending his rookie season with the Utah Jazz, Mo Williams signed an offer sheet with the Bucks and joined them for the 2004-05 season. With T.J. Ford injured, Williams saw a bigger role with the Bucks and played extremely well. Over the following three seasons, Williams started to really come into his own and become a tremendous point guard. Yet, in 2008, Williams was dealt to the Cleveland Cavaliers, ending his tenure with the Bucks.
Immediately following the trade, Williams had one of his best seasons and was named an All-Star for the Cavaliers. That certainly stung for the Bucks, especially as none of the pieces in the trade that sent Williams to the Cavaliers became major contributors. Over the next few years, Williams bounced around the NBA but provided steady point guard play at every single stop.
One can only imagine how things would have transpired if the Bucks had kept Williams for much longer. He could have become a fan favorite of that era of Bucks basketball among the likes of Michael Redd or Brandon Jennings.

No. 6 – Tobias Harris
A draft night trade brought Tobias Harris to the Milwaukee Bucks in 2011. Over the season and a half he spent in Milwaukee, Harris did not see a prominent role, having averaged just 11.5 minutes per game in 70 appearances. Despite showing signs of potential when he did play, Harris was sent to the Orlando Magic in a big trade, where he finally unearthed that potential the Bucks couldn’t.
The 2012-13 season alone says enough. In 28 games with the Bucks, Harris averaged 4.9 points in 11.9 minutes per game. In 27 games with the Magic, he averaged 17.3 points while playing an increased 36.1 minutes per game. It was evident very quickly that the Bucks made a mistake by giving up on a 20-year-old wing who clearly had potential but just needed to play a larger role.
Since then, Harris has cemented his status as one of the league’s best role players no matter what teams he’s played for. He’s never been an All-Star, but he’s been very close several times in his NBA career. The Bucks undoubtedly made a mistake giving up on him, especially considering what they got in that deal with the Magic and what they eventually did with those pieces.

No. 5 – J.J. Redick
Speaking of Tobias Harris, the trade that sent him from Milwaukee to Orlando saw the Bucks get J.J. Redick, among others, in return. Redick’s entire tenure with the Bucks was perplexing. After playing in 32 total games with the Bucks, Redick went to the LA Clippers in a sign-and-trade, as the Bucks seemed fine with letting him walk. This entire thing stings because not only did they lose Redick, but they traded away a promising young wing in Harris to get him in the first place. Puzzling decisions.
Redick quickly went on to enter his prime and play high-level basketball for several contenders, mainly the Clippers and Philadelphia 76ers. He cemented himself as one of the best 3-point shooters of the modern era and a high-level starter. While Redick didn’t impress during his stint with Milwaukee, it was a small sample size post-trade, so they should have looked to keep him around for a bit longer, especially after giving up Harris.
In the same off-season that Redick left, the Bucks drafted a relatively unknown prospect named Giannis Antetokounmpo. Throughout his career, the Bucks have done their best to surround the Greek Freak with excellent perimeter shooters. The pairing of Redick and Antetokounmpo would have been outright lethal for years to come, but it will remain a “what-if” for the rest of time.

No. 4 – Christian Wood
Christian Wood’s time with the Bucks was nothing short of strange. He dominated with their team in the G-League, the Wisconsin Herd, but saw minimal action with the Bucks. Wood appeared in a mere 13 games with the Bucks for an average of 4.8 minutes per contest before being let go for Pau Gasol. While Gasol undeniably had name recognition, he was in the late stages of his career and played in just three games for Milwaukee.
After being let go by the Bucks, Wood immediately showcased the untapped potential he had as a player. He signed with the New Orleans Pelicans, and in eight games, he averaged 16.9 points and 7.9 boards per game. It certainly stung Bucks fans to see that, as many of them had been begging for the G-League standout to get some legitimate minutes in Milwaukee’s frontcourt rotation. He has gone on to become a solid rotational player and average north of 16 points per game over the past three seasons.
Due to criticism of Milwaukee’s inability to develop young talent over the past few years, this is a decision that certainly looms large. Wood hasn’t turned out to be a star, but there’s no doubt that he could have fit in very nicely in Milwaukee’s frontcourt alongside Antetokounmpo and Brook Lopez. His scoring and rebounding, in addition to his youth, could have helped mightily.

No. 3 – Gary Payton II
Over a decade after his father, Gary Payton, played for the franchise, Gary Payton II started his NBA career as a member of the Bucks in 2017. The guard showed glimpses of some potential during his brief time in Milwaukee, primarily on the defensive end, but he was waived in December of that year in favor of Sean Kilpatrick.
Payton bounced around the league and dealt with injuries over the next few years but came into his own when he joined the Golden State Warriors. In 2021-22, he carved out a role for himself as a scrappy guard who made the hustle plays and pestered opposing scorers. His efforts helped the Warriors take home the NBA Championship that season, having served as a key cog off the bench.
Payton’s injury history clouds this from being a bonafide strikeout for the Bucks, as he’s played in 30 games in a season just once in his six-year career. However, it would have been interesting to see how the guard may have developed alongside the ascending Bucks post-2017. He may not have turned into a star, but he certainly could have been a great role player.

No. 2 – P.J. Tucker
Unlike most of the names on this list, P.J. Tucker was not a youngster when the Bucks gave up on him; he was an established player in his late 30s. Tucker spent just a few months in Milwaukee in the 2020-21 season, where he was brought over in a trade with the Houston Rockets. Of course, that was the season Milwaukee won the NBA title, and Tucker certainly played a big part in the team finally getting over the hump.
Despite serving as a starter for most of the playoffs that season and helping Milwaukee reach the promised land, the Bucks shockingly let Tucker walk. It was a move that blindsided everyone, as it seemed inevitable that he would return for another go-round. Yet, he inked a deal with the rivaling Miami Heat instead. It’s unclear what exactly happened in the negotiation room, but it appears the Bucks may have tried to go cheap with Tucker on his next deal and lowballed him.
Since letting Tucker go, the Bucks have tried replacing what he brought to the table with a mix of different players. They brought in Semi Ojeleye in free agency that year, and he became unplayable in the span of a few months. They then added Wesley Matthews, who has been solid since coming back to Milwaukee, but not on the same level as Tucker. They added Jae Crowder this year, but he failed to make much of an impact and spent most of the playoffs on the bench.
Rather than trying to replace Tucker, the Bucks probably should have just coughed up the money to keep him. Since his departure, they’ve lacked some toughness and a go-to wing defender who is not afraid of the most imposing assignments. The decision to let him go will continue to be a big talking point among the fanbase for years to come.

No. 1 – Ray Allen
The Ray Allen trade remains one of the most haunting deals in Milwaukee Bucks history to date.
After being named an All-Star in three of his six seasons with the Bucks, Allen was moved to the Seattle Supersonics midway through the 2002-03 season in a deal centered around Gary Payton. Payton played well for the Bucks, but he appeared in just 34 total games for the franchise before bolting to Los Angeles in the off-season. The Bucks essentially traded an up-and-coming star in Allen for 34 games of Payton because Coach George Karl and Allen did not see eye to eye.
After being traded from Milwaukee, Allen went on to be named an All-Star seven more times and win two championships with the Boston Celtics and Miami Heat. En route to winning his title with the Heat, Allen hit one of the most clutch shots in NBA history in the 2013 NBA Finals. Arguably the biggest what-if in franchise history involves the team trading away their 27-year-old star, as Allen was destined for greatness but didn’t get to fully showcase it in Milwaukee during his prime years. It’s a shame everything went down like this.
One can only wonder what would have happened if Allen stayed in Milwaukee.

