An undrafted Texas product who fought his way from Saints depth piece to a well-paid Broncos defensive lineman.
Malcolm Roach's path to a three-year, $29.25 million extension with Denver ran through five seasons of grinding rotational work, first in New Orleans and then in Denver. The Baton Rouge native has become a steady presence on the Broncos' interior defensive line, coming off a 2025 season that included a calf injury and a career-best four sacks.
Path to the league
Roach played 47 games at Texas across defensive end and linebacker spots, finishing with 134 tackles, 22.5 tackles for loss and eight sacks. He went unselected in the 2020 NFL Draft and signed with the New Orleans Saints as an undrafted free agent.
Career highlights
Roach spent his first four NFL seasons in New Orleans as a rotational defensive lineman before signing with the Broncos as an unrestricted free agent in March 2024. He has racked up 174 career tackles, 7.5 sacks and an interception, and in November 2025 he agreed to a three-year, $29.25 million extension with Denver.
2025 season recap
Roach opened the 2025 season on injured reserve with a grade 2 calf strain before returning for Week 6. He finished the year with 15 solo tackles and a career-high four sacks across 12 games, then signed his extension with the Broncos in late November.
Sources
- Wikipedia: Malcolm Roach
- Pro Football Reference: Malcolm Roach
Statistics
2025 season and career2025 Season · Defense
12 games played▶Defense · career
| Year | Team | GP | TOT | SOLO | SACK | INT | FF | FR | PD |
|---|---|---|---|---|---|---|---|---|---|
| 2025 | broncos | 12 | 41 | 15 | 4 | 0 | 0 | 0 | 0 |
| 2024 | broncos | 17 | 43 | 18 | 2.5 | 0 | 1 | 1 | 2 |
| 2023 | saints | 12 | 38 | 13 | 0 | 0 | 0 | 0 | 3 |
| 2022 | saints | 13 | 26 | 14 | 1 | 0 | 0 | 0 | 0 |
| 2021 | saints | 7 | 10 | 4 | 0 | 1 | 0 | 0 | 1 |
| 2020 | saints | 9 | 16 | 7 | 0 | 0 | 0 | 0 | 0 |
Player Profile
Background
- Position
- Defensive Tackle
- Group
- defense
- College
- Texas
- Hometown
- Baton Rouge, LA, USA
- Age
- 28
- Status
- active