Witkowski was selected by the Texas Tornado in the 2007 NAHL Draft, but instead played in the United States Hockey League prior to being drafted by the Tampa Bay Lightning in the 2008 NHL Entry Draft. Witkowski played collegiate hockey with the Western Michigan University for four years. On April 1, 2013, the Tampa Bay Lightning announced the signing of Witkowski to a two-year entry level contract. Witkowski was the captain of WMU, where he had two goals and 10 points and was named second-team ALL-CCHA. Witkowski played in 152 games over four years with the WMU Broncos.
On October 19, 2014, the Tampa Bay Lightning recalled Witkowski from the Syracuse Crunch. He has played in four games for the Crunch prior to the recall, recording an assist and 15 penalty minutes. In his first professional season, he appeared in 76 games with the Crunch. During the 2013-14 season, he recorded two goals and 12 points with 204 penalty minutes. During the preseason with the Lightning, he had an assist and 11 penalty minutes. On October 23, 2014, the Lightning reassigned Witkowski back to the Crunch. During his brief stint with the lightning, he did not appear in any games with the team.
On January 16, 2015, the Lightning recalled Witkowski from the Syracuse Crunch. He has appeared in 36 games with the Crunch this season, posting a goal and six points to go along with 75 penalty minutes. On January 20, 2015, Witkowski made his NHL debut in a Tampa Bay Lightning 4-1 victory over the visiting Vancouver Canucks. In his NHL debut, Witkowski had 14:29 in ice time on the night. On April 14, 2014, the Tampa Bay Lightning announced that Witkowsi had been reassigned to the Syracuse Crunch. He is expected to help them finish out the regular season and during their playoff run. Witkowski played in 16 games in two stints with the Lightning during the 2014–15 NHL season, where his physical brand of hockey helped the team through a series of injuries on defense. In the season finale, Witkwoski had a team high eight hits in a Lightning 3-2 shootout win over the Boston Bruins.
On July 17, 2015, the Lightning announced the re-signing of Witkowski to a one-year, two-way contract. Witkowski played in 16 games with the Lightning during the 2014015 season, recording 15 penalty minutes. He had 37 hits and blocked 20 shots during his sixteen-game stint with the team. Witkowski skated in 50 games with the Crunch last season, collecting two goals and eight points along with 91 penalty minutes. He also skated in three Calder Cup Playoff games with Syracuse in 2015, posting one assist and four penalty minutes.
On May 6, 2016, Wikowski played in his first career NHL playoff game, which was a 2-1 Lightning win over the New York Islanders. On June 24, 2016, the Lightning re-signed Witkowski to a one-year, two-way contract. During the 2016 season, Witkowski played in 4 regular season games with the team. Witkowski also made his Stanley Cup Playoff debut, where he appeared in two games during the second round against the New York Islanders. Witkowski has played in 20 career NHL game, all with the Lightning over the past two seasons. He has also played in 199 career games in the AHL, all with the Crunch.
On October 20, 2016, Witkowski was named as the captain of the Syracuse Crunch. Witkowski is the 15th full-time captain in team history and only the second in the Crunch's five seasons of affiliation with the Lightning. Witkowski will be starting his fourth full season with the Crunch, and had previously been a captain for two years at Western Michigan and one with Fargo of the USHL. On December 8, 2016, Witkowski recorded his first career NHL assist and point. During the 2016–17 season, Witkowski played a career-high 34 NHL games for the Lightning, recording four assists, 24 shots on goal, 81 hits and 21 blocked shots.
On July 1, 2017, Witkowski signed a two-year contract with the Detroit Red Wings.