In his youth, Heyer played for 1. FCR Bramsche, TSV Wallenhorst and VfL Osnabrück. With the latter, he progressed through the U17 and U19 sides and appeared in the Under 17 and Under 17 Bundesliga. In September 2013, Heyer made his first appearance for the second-team, VfL Osnabrück II, in the fifth-tier Oberliga Niedersachsen.
Sportfreunde Lotte
Ahead of the 2014–15 season, in May 2014, Heyer moved from the Osnabrück U19 team to Sportfreunde Lotte in the fourth-tier Regionalliga West.[3] After not being utilised under head coach Michael Boris, he began making an impact under his successor, Ismail Atalan, at the end of the season, making four appearances, of which two were starts, and he scored a goal.
In the 2015–16 season, Heyer established himself as a regular starter under Atalan in the second half of the season. He contributed with three goals in 26 appearances, of which 18 were in the starting lineup, with the team finishing with the Regionalliga West championship at the end of the season.[4] In the subsequent promotion games against the Regionalliga Südwest champions SV Waldhof Mannheim, Heyer appeared in the 2–0 win in the second leg, which effectively promoted Sportfreunde Lotte to the 3. Liga.[5]
In the 2016–17 season, Heyer, who from then increasingly played in central defense, was again part of the regular starting lineup and made 33 appearances in the 3. Liga, with 23 of them being as a starter, in which he scored two goals. Oscar Corrochano took over as head coach ahead of the 2017–18 season, as Atalan had moved to VfL Bochum. Under Corrochano and his successor Andreas Golombek, Heyer was again mainly used in the defensive midfield and scored three goals in 34 appearances.
Hallescher FC
In the summer of 2018, Heyer signed a one-year contract with 3. Liga club Hallescher FC on a free transfer.[6] Under head coach Torsten Ziegner he almost exclusively played in central defense and made 36 appearances during the season, in which he scored 3 goals. In the sports magazine kicker, Heyer was subsequently one of the top ranked central defenders in the 3. Liga.[7]
VfL Osnabrück
In May 2019, Heyer signed for VfL Osnabrück on a two-year deal, after they had reached promotion to the 2. Bundesliga.[8] Under head coach Daniel Thioune, Heyer was one of the regulars right from the start. He played mainly in central defense, but was also utilised in defensive midfield and as a right-back. In 33 2. Bundesliga appearances, Heyer scored six goals. In kicker he was rated as the third best central defender of the league after the season.[9] VfL Osnabrück finished 13th in the league at the end of the season.
Hamburger SV
"Preferably in central defence. In general, I prefer to play centrally rather than on the outside. But since as a footballer you always want to play in general, I don't really care about the position."
– Moritz Heyer in February 2021 on which position he prefers to play.[10]
On 17 September 2020, one day before the first matchday of the 2020–21 season, Heyer signed a three-year contract with Hamburger SV in the 2. Bundesliga. The move reunited him with his former Osnabrück coach Daniel Thioune.[1] He would initially feature as a centre-back alongside Stephan Ambrosius, but had to replace the injured left-back and captain Tim Leibold on the third matchday. Over the course of the first half of the season, Heyer oscillated between defensive midfield and centre-back when Thioune would utilise a formation with three at the back. From the 14th matchday on, Heyer was used in a 4–3–3 system as the defensive midfielder.[10] Since Leistner and Ambrosius were injured during the course of the second half of the season, Heyer was again mainly utilised as a centre-back. As an all-rounder, Heyer made 32 appearances in the league in which he scored two goals.[11] HSV finished fourth for the third time in a row after a strong first half and a weak second half of the season, as manager Thioune was replaced by Horst Hrubesch for the remaining three games of the season.[12]
Manager Tim Walter took over HSV for the 2021–22 season.[13] After Heyer was initially used in the 4–3–3 formation as a central midfielder, he mainly played as the team's right-back later on. In this position he replaced Jan Gyamerah, who had been a regular starter after the injury of Josha Vagnoman until that point.[14] In April 2022, Heyer extended his contract until 2026.[15]