After being drafted by the
Owen Sound Attack in the 2012
Ontario Hockey League draft, Middleton played 14 games for the team before being traded to the
Ottawa 67's on January 7, 2013. On January 8, 2016, in his fourth season with the 67's, Middleton was named captain of the team. After concluding that season, on April 8, 2016, Middleton signed an amateur try-out agreement with the
Manchester Monarchs of the
ECHL. He played seven games for the Monarchs before joining the
American Hockey League (AHL) affiliate of the
San Jose Sharks, the
San Jose Barracuda, for the
2016–17 season. On September 7, 2017, Middleton signed a three-year, entry-level contract with the San Jose Sharks. On January 5, 2019, Middleton was recalled from the Barracuda, and made his NHL debut that night against the
Tampa Bay Lightning. He recorded his first point on April 4, 2019, in a 3–2 victory against the
Edmonton Oilers. On October 5, 2019, he was placed on injured reserve. In the
2021–22 season, while remaining on the Sharks roster, Middleton scored his first NHL goal in a 6–3 win against the
Ottawa Senators on November 24, 2021. He compiled career best marks of 3 goals and 9 points through 45 games. While in the midst of his first full NHL season he was traded by the Sharks, along with a
2022 fifth-round draft pick to the
Minnesota Wild in exchange for
Kaapo Kähkönen on March 21, 2022. As a pending free agent, Middleton opted to remain with the Wild in signing a three-year, $7.35 million extension on July 6, 2022. ==International play==