Zenner attended Eagan High School in Eagan, Minnesota. While at Eagan High School, he played for the football team. As a senior in 2009, he was a finalist for the Minnesota Mr. Football Award after posting an average of 8.9 yards per carry, along with 1,181 rushing yards, 122 receiving yards, and 17 total touchdowns. He earned All-Metro Honors, and Academic All-State on several teams. In addition, Zenner was a member of the state tournament qualifying Eagan baseball team in 2009. In 2010, Zenner led the team in batting average, posting a batting average of.537. He led the team in stolen bases as well.
College career
Zenner attended South Dakota State University from 2010 to 2014. South Dakota State was the only Division I program to offer Zenner a scholarship. During this time, he was a member of the South Dakota State Jackrabbits football team, wearing the #31 jersey. After his redshirt year, he began to take on his role with the team, including working on returning kicks, with positive growth and success. His 2012 campaign was a breakout year, highlighted in the first game against the Kansas Jayhawks with a 99-yard touchdown run. Zenner rushed for at least 2,000 yards during each of the 2012, 2013, and 2014 seasons.
Professional career
Coming out of college, many analysts had Zenner projected to be drafted in the fifth or sixth round. He was rated as the second best fullback in the draft by NFLDraftScout.com.
Detroit Lions
After Zenner went undrafted in the 2015 NFL Draft, he was signed as an undrafted free agent by the Detroit Lions. On May 2, 2015, the Detroit Lions signed him to a three-year, $1.58 million contract with a $5,000 signing bonus. Zenner entered training camp competing for the fourth running back on the Lions' depth chart with George Winn. Zenner ultimately won the position, leading the NFL in rushing yards during the preseason, and went into the regular season as the backup behind Joique Bell, Theo Riddick, and Ameer Abdullah. Zenner made his professional regular season debut in the Lions' season opener at the San Diego Chargers, finishing with two carries for six rushing yards. On October 5, 2015, he carried the ball twice for nine yards and made his first career reception on a four-yard pass from Matt Stafford during a 10-13 loss to the Seattle Seahawks. The following week, Zenner earned his first career start and had a season-high ten carries for 30 rushing yards against the Arizona Cardinals. On October 18, 2015, Zenner had three rushing attempts for nine rushing yards during a 34-37 overtime victory over the Chicago Bears. He left during the game after he suffered an apparent injury to his chest. It was later revealed he had suffered multiple fractured ribs and a collapsed lung. On October 30, 2015, the Detroit Lions placed him on injured-reserve for the remainder of his rookie season. During the 2016 training camp, Zenner competed for the third backup running back position with rookie Dwayne Washington. He was named the fourth running back on the depth chart to begin the season, behind Ameer Abdullah, Theo Riddick, and Dwayne Washington. He was inactive for the first two games of the season but was activated for Week 3, after Abdullah suffered a fracture to his foot. During the Lions' Week 4 divisional matchup against the Chicago Bears, Zenner had three carries for 12 rushing yards and one 22-yard reception in the 14-17 loss. On October 16, 2016, he earned his first start of the season and finished with a career-high 14 rushing attempts for 58 rushing yards and caught two passes for 14 receiving yards during a 31-28 victory over the Los Angeles Rams. The following week, he ran for 29 rushing yards on nine carries and scored his first career touchdown on a one-yard run in the third quarter of a 20-17 win against the Washington Redskins. On December 26, 2016, in a Monday Night Football game, Zenner had 12 carries for 67 rushing yards and a career-high two rushing touchdowns in the first half of the Lions' 21-42 loss to the Dallas Cowboys. Although he found success in the first half, he did not receive any carries for the rest of the game. He was the only running back to carry the ball for the Lions in the next two games, scoring a touchdown in a home game against the Packers to end the regular season, then starting the Lions playoff game against the Seattle Seahawks where he picked up 88 total yards in a 26-6 loss. In a limited role during the 2017 season, Zenner had 14 carries for 26 yards and a rushing touchdown. On March 16, 2018, Zenner re-signed with the Lions. He was placed on injured reserve on September 1, and was then released on September 12 before getting re-signed by the Lions on November 6. During the 2018 season, he finished with 265 rushing yards and three rushing touchdowns on 55 carries in eight games, including one start. On March 12, 2019, Zenner signed a one-year contract extension with the Lions. He was released on August 27, 2019.
New Orleans Saints
On October 16, 2019, Zenner was signed by the New Orleans Saints. Zenner debuted as a Saint against the Chicago Bears, when he gained just one yard on his only carry, and caught one of the two passes thrown his way in the same game, gaining six yards, and ended with seven total yards. Zenner was released on October 22, 2019
Arizona Cardinals
On October 23, 2019, Zenner was signed by the Arizona Cardinals. On December 2, 2019, Zenner was waived by the Cardinals.
Miami Dolphins
On December 3, 2019, Zenner was claimed off waivers by the Miami Dolphins. He was waived on December 10.