Brewer accepted an athletic scholarship to attend the University of Florida, where he played for coach Billy Donovan's Florida Gators men's basketball team from 2004 to 2007. Brewer was one of four key freshman members of Donovan's 2004 recruiting class who would have a dramatic impact on the Gators' fortunes over the next three seasons. Propelled by the 2004 class, the Gators would win the first three SEC basketball tournament championships in team history, and two back-to-back NCAA Tournament national championships with the same starting line-up. Brewer recorded the first triple-double in Gators team history on December 18, 2005, posting 15 points, 10 rebounds and 13 assists. He was projected by ESPN.com's Chad Ford to be a lottery pick to mid-first round pick in the 2006 NBA draft if he had entered the draft that year. However, Brewer, along with teammates Joakim Noah and Al Horford announced at the championship pep rally that they would be returning for their junior seasons in pursuit of their second NCAA Tournament championship. Following the Gators' second NCAA championship, Brewer chose to enter the NBA draft on April 5, 2007 along with teammates Noah and Horford.
Brewer was selected seventh overall by the Minnesota Timberwolves in the 2007 NBA draft. Due to the retirement of the No. 2 jersey in Minnesota worn by the deceased Malik Sealy, Brewer expressed the desire to wear No. 22 instead. He officially adopted the No. 22 for the season's summer leagues, in Las Vegas, Nevada. On December 1, 2008, it was announced that Brewer had sustained an ACL tear and would miss the rest of the 2008–09 NBA season.
On February 22, 2011, Brewer was traded to the New York Knicks in a three-way blockbuster trade that also brought Carmelo Anthony from the Nuggets to New York. On March 1, 2011, he was waived by the Knicks without playing a game for them.
On March 3, 2011, Brewer signed a three-year, $8 million contract with the Dallas Mavericks. He went on to win his first NBA Championship with the Mavericks when they defeated the Miami Heat in six games in the 2011 NBA Finals.
On December 13, 2011, Brewer and Rudy Fernández were traded to the Denver Nuggets for a future second-round pick.
Return to Minnesota (2013–2014)
On July 12, 2013, Brewer signed a reported three-year, $15 million contract with the Minnesota Timberwolves, returning to the franchise for a second stint. On April 11, 2014, Brewer scored a career-high 51 points in a 112–110 win over the Houston Rockets. In doing so he joined Michael Jordan, Allen Iverson and Rick Barry as the only players to record 50-plus points and 6-plus steals in one game. He also tied Kevin Love's then-franchise record for most points in a game.
Houston Rockets (2014–2017)
On December 19, 2014, Brewer was acquired by the Houston Rockets in a three-team trade that also involved the Timberwolves and the Philadelphia 76ers. Three days later, he made his debut for the Rockets against the Portland Trail Blazers. In just under 23 minutes of action off the bench, he recorded 12 points, 4 rebounds, 4 assists, 5 steals and 1 block in a 110–95 win. On February 21, 2015, he recorded season-highs of 26 points and 10 rebounds in a 98–76 win over the Toronto Raptors. On July 14, 2015, Brewer re-signed with the Rockets to a three-year, $23.4 million contract. On January 22, 2016, he picked up the team's starting small forward role. On February 4, in his ninth start of the season, Brewer scored a season-high 24 points in a 111–105 win over the Phoenix Suns.
On February 23, 2017, Brewer was traded, along with a 2017 first round draft pick, to the Los Angeles Lakers in exchange for Lou Williams. On February 28, 2018, he was waived by the Lakers after reaching a buyout agreement.
On March 3, 2018, Brewer signed with the Oklahoma City Thunder. On March 16, 2018, he scored 22 points and matched a career high with six steals in a 121–113 win over the Los Angeles Clippers.
Philadelphia 76ers (2019)
On January 15, 2019, Brewer signed a 10-day contract with the Philadelphia 76ers. On January 25, he signed a second 10-day contract with the 76ers. Following the expiration of his second 10-day contract, the 76ers parted ways with Brewer, deciding not to sign him for the rest of the season.
Sacramento Kings (2019-present)
On February 8, 2019, Brewer signed a 10-day contract with the Sacramento Kings. He went on to sign a second 10-day contract on February 18, and a rest-of-season contract on February 28. After spending the whole of the 2019-20 NBA season as a free agent, Brewer re-signed with the Kings on June 23, 2020 prior to the planned resumption of the season.