At the beginning of the season, Bonaventura switched his number from 28 to 5. He started Milan's opening match of the Serie A season against Torino. In the second half of the match, he was fouled inside the six-yard box by Joel Obi and Milan was given a penalty which was converted by Carlos Bacca to complete his hat-trick in Milan's 3–2 win. He scored his first goal of the season on 2 October in Milan's memorable comeback against Sassuolo as the game finished 4–3. The following week he assisted M'Baye Niang's goal against ChievoVerona in a 3–1 win. He also assisted Suso's first goal in the 2–2 draw against city rivals, Inter. On 23 December 2016, Bonaventura scored the equalising goal in the Supercoppa Italiana against Juventus; he later netted his penalty in the resulting shoot-out, helping Milan to a 4–3 victory. He signed a contract extension through 2020 with Milan on 18 January 2017. On 29 January, Bonaventura suffered an injury in a match against Udinese which ruled him out for the rest of the season following surgery on a thigh injury; earlier in that match, he scored Milan's goal in the 2–1 loss. He returned to the squad for the last game of the season against Cagliari on 28 May, but couldn't make an appearance during the match as Milan lost 2–1. He ended the season with 5 goals and 4 assists in 22 appearances in all competition as Milan finished 6th in Serie A, was knocked out of Coppa Italia in quarter-finals by eventual champions Juventus, and also won the Supercoppa Italiana.