| Res. | Record | Opponent | Method | Event | Date | Round | Time | Location | Notes |
| Win | 24–19 | Daniel Zellhuber | Decision (unanimous) | UFC 318 | July 19, 2025 | 3 | 5:00 | New Orleans, Louisiana, United States | |
| Win | 23–19 | Ottman Azaitar | KO (punch) | UFC on ESPN: Covington vs. Buckley | December 14, 2024 | 2 | 2:03 | Tampa, Florida, United States | Performance of the Night. |
| Win | 22–19 | Darrius Flowers | Decision (unanimous) | UFC Fight Night: Hermansson vs. Pyfer | February 10, 2024 | 3 | 5:00 | Las Vegas, Nevada, United States | |
| Loss | 21–19 | Carlos Diego Ferreira | KO (punch) | UFC Fight Night: Dern vs. Hill | May 20, 2023 | 2 | 1:50 | Las Vegas, Nevada, United States | |
| Win | 21–18 | Marc Diakiese | Decision (unanimous) | UFC on ESPN: Thompson vs. Holland | December 3, 2022 | 3 | 5:00 | Orlando, Florida, United States | |
| Loss | 20–18 | Jamie Mullarkey | Decision (split) | UFC on ESPN: dos Anjos vs. Fiziev | July 9, 2022 | 3 | 5:00 | Las Vegas, Nevada, United States | Fight of the Night. |
| Win | 20–17 | Alan Patrick | KO (punches) | UFC on ESPN: Błachowicz vs. Rakić | May 14, 2022 | 2 | 3:22 | Las Vegas, Nevada, United States | |
| Loss | 19–17 | Clay Guida | Decision (unanimous) | UFC Fight Night: Overeem vs. Volkov | February 6, 2021 | 3 | 5:00 | Las Vegas, Nevada, United States | |
| Loss | 19–16 | Thiago Moisés | Submission (achilles lock) | UFC Fight Night: Smith vs. Teixeira | May 13, 2020 | 2 | 0:25 | Jacksonville, Florida, United States | |
| Loss | 19–15 | Stevie Ray | Decision (majority) | UFC Fight Night: Maia vs. Askren | October 26, 2019 | 3 | 5:00 | Kallang, Singapore | Return to Lightweight. |
| Loss | 19–14 | Josh Emmett | KO (punch) | UFC on ESPN: Barboza vs. Gaethje | March 30, 2019 | 3 | 4:14 | Philadelphia, Pennsylvania, United States | |
| Win | 19–13 | Artem Lobov | Decision (unanimous) | UFC Fight Night: Volkan vs. Smith | October 27, 2018 | 3 | 5:00 | Moncton, New Brunswick, Canada | Catchweight (147 lb) bout; Johnson missed weight. |
| Win | 18–13 | Andre Fili | Decision (split) | UFC Fight Night: Gaethje vs. Vick | August 25, 2018 | 3 | 5:00 | Lincoln, Nebraska, United States | |
| Loss | 17–13 | Darren Elkins | Submission (rear-naked choke) | UFC Fight Night: Stephens vs. Choi | January 14, 2018 | 2 | 2:22 | St. Louis, Missouri, United States | Featherweight debut. |
| Loss | 17–12 | Justin Gaethje | TKO (punches and knees) | The Ultimate Fighter: Redemption Finale | July 7, 2017 | 2 | 4:48 | Las Vegas, Nevada, United States | Fight of the Night. Fight of the Year (2017). |
| Loss | 17–11 | Khabib Nurmagomedov | Submission (kimura) | UFC 205 | November 12, 2016 | 3 | 2:31 | New York City, New York, United States | |
| Win | 17–10 | Dustin Poirier | KO (punches) | UFC Fight Night: Poirier vs. Johnson | September 17, 2016 | 1 | 1:35 | Hidalgo, Texas, United States | Performance of the Night. |
| Loss | 16–10 | Nate Diaz | Decision (unanimous) | UFC on Fox: dos Anjos vs. Cowboy 2 | December 19, 2015 | 3 | 5:00 | Orlando, Florida, United States | Fight of the Night. |
| Loss | 16–9 | Beneil Dariush | Decision (split) | UFC Fight Night: Teixeira vs. Saint Preux | August 8, 2015 | 3 | 5:00 | Nashville, Tennessee, United States | |
| Win | 16–8 | Edson Barboza | Decision (unanimous) | UFC Fight Night: Bigfoot vs. Mir | February 22, 2015 | 3 | 5:00 | Porto Alegre, Brazil | |
| Win | 15–8 | Melvin Guillard | Decision (unanimous) | UFC Fight Night: Gustafsson vs. Manuwa | March 8, 2014 | 3 | 5:00 | London, England | |
| Win | 14–8 | Gleison Tibau | KO (punches) | UFC 168 | December 28, 2013 | 2 | 1:32 | Las Vegas, Nevada, United States | |
| Win | 13–8 | Joe Lauzon | Decision (unanimous) | UFC Fight Night: Shogun vs. Sonnen | August 17, 2013 | 3 | 5:00 | Boston, Massachusetts, United States | |
| Loss | 12–8 | Reza Madadi | Submission (brabo choke) | UFC on Fuel TV: Mousasi vs. Latifi | April 6, 2013 | 3 | 1:33 | Stockholm, Sweden | |
| Loss | 12–7 | Myles Jury | Decision (unanimous) | UFC 155 | December 29, 2012 | 3 | 5:00 | Las Vegas, Nevada, United States | |
| Win | 12–6 | Danny Castillo | KO (punches) | UFC on FX: Browne vs. Bigfoot | October 5, 2012 | 2 | 1:06 | Minneapolis, Minnesota, United States | Knockout of the Night. |
| Win | 11–6 | Tony Ferguson | Decision (unanimous) | UFC on Fox: Diaz vs. Miller | May 5, 2012 | 3 | 5:00 | East Rutherford, New Jersey, United States | |
| Win | 10–6 | Shane Roller | Decision (unanimous) | UFC on Fox: Evans vs. Davis | January 28, 2012 | 3 | 5:00 | Chicago, Illinois, United States | |
| Loss | 9–6 | Paul Sass | Submission (heel hook) | UFC Live: Cruz vs. Johnson | October 1, 2011 | 1 | 3:00 | Washington, D.C., United States | |
| Win | 9–5 | Edward Faaloloto | TKO (punches) | UFC Live: Kongo vs. Barry | June 26, 2011 | 1 | 4:42 | Pittsburgh, Pennsylvania, United States | |
| Loss | 8–5 | Jonathan Brookins | Decision (unanimous) | The Ultimate Fighter: Team GSP vs. Team Koscheck Finale | December 4, 2010 | 3 | 5:00 | Las Vegas, Nevada, United States | The Ultimate Fighter 12 Lightweight Tournament Final. |
| Win | 8–4 | Chris McDaniel | TKO (punches) | FM Productions 7 | January 30, 2010 | 1 | 4:34 | Springfield, Missouri, United States | |
| Win | 7–4 | Ramiro Hernandez | Decision (unanimous) | Titan FC 15 | December 18, 2009 | 3 | 5:00 | Kansas City, Kansas, United States | Catchweight (150 lb) bout. |
| Win | 6–4 | Aaron Derrow | TKO (punches) | Xtreme Cage Fighter 10 | October 3, 2009 | 1 | 0:43 | Springfield, Missouri, United States | Won the XCF Lightweight Championship. |
| Loss | 5–4 | Eric Marriott | Submission (heel hook) | FM Productions 6 | May 9, 2009 | 2 | 1:32 | Springfield, Missouri, United States | |
| Win | 5–3 | Clay French | Submission (kimura) | Fuel Fight Club | April 10, 2009 | 1 | 3:16 | Lake Ozark, Missouri, United States | |
| Loss | 4–3 | Joe Brammer | Submission (guillotine choke) | Midwest Cage Championship 19 | March 14, 2009 | 4 | 3:45 | Des Moines, Iowa, United States | |
| Loss | 4–2 | James Krause | Submission (triangle choke) | FM Productions 4 | November 22, 2008 | 1 | 2:55 | Springfield, Missouri, United States | |
| Win | 4–1 | Warren Stewart | TKO (punches) | FM Productions 3 | September 13, 2008 | 1 | 2:37 | Springfield, Missouri, United States | |
| Win | 3–1 | Lucas Gwaltney | Decision (majority) | Midwest Fight League: Battle at the Blue Note 9 | July 25, 2008 | 3 | 5:00 | Columbia, Missouri, United States | Won the MFL Lightweight Championship |
| Loss | 2–1 | Ted Worthington | Submission (triangle choke) | Midwest Cage Championship 13 | April 25, 2008 | 3 | 1:29 | Urbandale, Iowa, United States | |
| Win | 2–0 | Steve Schneider | Submission (rear naked-choke) | FM Productions 2 | April 18, 2008 | 1 | 2:12 | Springfield, Missouri, United States | |
| Win | 1–0 | Chauncey Prather | TKO (punches) | FM Productions 1 | February 1, 2008 | 1 | 1:12 | Springfield, Missouri, United States | |