Butler will have a player option for the fifth year of the deal, but the pact assures he will be in Chicago through the 2019-20 season.
Butler had one of the biggest breakout seasons in recent memory this past season for the Bulls, becoming an All-Star for the first time, while averaging 20.0 points, 5.8 rebounds and 3.3 assists a game. He became one of the best two-way players in the game and guarded the opposition's best perimeter player on a nightly basis.
Bulls executive vice president John Paxson was already on record as saying the team would match any offer sheet Butler would sign this summer, but the hope within the organization was that it could work out a deal beforehand.
Free agency started Wednesday, but deals can't officially be signed until July 9.
ESPN.com's Nick Friedell contributed to this report.