Shams Charania of The Athletic and Stadium reported Portis signed a two-year, $9 million contract with a player option for the second season, so Portis could be back on the open market this time next summer.
He became a free agent after declining his $3.8 million player option to play for the Bucks in 2021-22.
The 26-year-old Portis spent the 2020-21 season with the Bucks and became a fan favorite en route to Milwaukee winning its first NBA championship in 50 years.
Portis primarily came off the bench last season, starting just seven of the 66 regular-season games he appeared in. He was a key interior presence alongside Giannis Antetokounmpo and Brook Lopez, averaging 11.4 points, 7.1 rebounds, 1.1 assists and 1.1 three-pointers made per game, and shooting a career-best 52.3 percent from the field and 47.1 percent from beyond the arc.
He also played in 20 postseason games, averaging 8.8 points and 5.0 rebounds, while shooting 46.4 percent from the floor and 34.6 percent from deep.
After a partial season in Washington, Portis played for the New York Knicks in 2019-20, taking on a similar role to what he did in Milwaukee.
In six NBA seasons, Portis owns averages of 10.4 points, 6.1 rebounds, 1.2 assists and 0.9 three-pointers made per game.
Given how efficient Portis was offensively last season compared to previous years, it came as little surprise when he declined his player option, as he was in for a significant raise.
Portis may have been able to make even more elsewhere, but he clearly valued playing for a contender like Milwaukee and decided to return to the Bucks on a new deal.
With Portis coming back into the fold, the Bucks will return largely the same roster that won a championship this past season.