| Res. | Record | Opponent | Method | Event | Date | Round | Time | Location | Notes |
| Win | 23–7 | Leon Edwards | KO (punches) | UFC 322 | November 15, 2025 | 2 | 1:28 | New York City, New York, United States | Performance of the Night. |
| Win | 22–7 | Geoff Neal | KO (spinning back elbow) | UFC 319 | August 16, 2025 | 1 | 4:59 | Chicago, Illinois, United States | Performance of the Night. |
| Loss | 21–7 | Ian Machado Garry | Decision (unanimous) | UFC on ESPN: Machado Garry vs. Prates | April 26, 2025 | 5 | 5:00 | Kansas City, Missouri, United States | |
| Win | 21–6 | Neil Magny | KO (punch) | UFC Fight Night: Magny vs. Prates | November 9, 2024 | 1 | 4:50 | Las Vegas, Nevada, United States | Performance of the Night. |
| Win | 20–6 | Li Jingliang | KO (punches) | UFC 305 | August 17, 2024 | 2 | 4:02 | Perth, Australia | Performance of the Night. |
| Win | 19–6 | Charles Radtke | KO (knee to the body) | UFC on ESPN: Cannonier vs. Imavov | June 8, 2024 | 1 | 4:47 | Louisville, Kentucky, United States | Performance of the Night. |
| Win | 18–6 | Trevin Giles | KO (punch) | UFC Fight Night: Hermansson vs. Pyfer | February 10, 2024 | 2 | 4:03 | Las Vegas, Nevada, United States | Performance of the Night. |
| Win | 17–6 | Mitch Ramirez | TKO (punch) | Dana White's Contender Series 60 | November 18, 2023 | 2 | 1:14 | Las Vegas, Nevada, United States | |
| Win | 16–6 | Eduardo Ramon | KO (knee) | LFA 154 | March 10, 2023 | 1 | 2:25 | Cajamar, Brazil | |
| Win | 15–6 | Moacir Rocha | KO (head kick and punches) | LFA 146 | November 4, 2022 | 1 | 4:15 | Cajamar, Brazil | Catchweight (174.6 lb) bout; Rocha missed weight. |
| Win | 14–6 | Charles de Oliveira Santos | KO (punch) | Standout Fighting Tournament 37 | September 3, 2022 | 1 | 3:14 | São Paulo, Brazil | Won the vacant SFT Welterweight Championship. |
| Win | 13–6 | Taffarel Brasil | KO (punches and knee) | Standout Fighting Tournament 35 | June 11, 2022 | 2 | 1:52 | São Paulo, Brazil | Return to Welterweight. |
| Win | 12–6 | Alan Silva | TKO (punches) | Standout Fighting Tournament 32 | December 18, 2021 | 1 | 1:21 | São Paulo, Brazil | Lightweight bout. |
| Win | 11–6 | Joseph Luciano | Decision (unanimous) | ONE Warriors Series 9 | December 4, 2019 | 3 | 5:00 | Kallang, Singapore | |
| Loss | 10–6 | Gadzhimurad Abdullaev | Decision (unanimous) | ONE Warriors Series 6 | June 20, 2019 | 3 | 5:00 | Kallang, Singapore | |
| Win | 10–5 | Gunther Kalunda Ngunza | KO (body kick) | ONE Warriors Series 5 | April 25, 2019 | 2 | 4:45 | Kallang, Singapore | Middleweight debut. |
| Win | 9–5 | Tuluosibake Kuerbanjiang | TKO (punches) | WLF W.A.R.S. 30 | December 14, 2018 | 1 | 0:28 | Zhengzhou, China | |
| Win | 8–5 | Tao Jiang | TKO (punches) | Chin Woo Men: 2016-2017 Season, Stage 7 | April 7, 2017 | 2 | 3:35 | Guangzhou, China | |
| Loss | 7–5 | Mikhail Romanchuk | TKO (punches) | Chin Woo Men: 2016-2017 Season, Stage 3 | January 7, 2017 | 1 | 2:03 | Guangzhou, China | |
| Win | 7–4 | Sun Jiming | Submission (guillotine choke) | Chin Woo Men: 2016-2017 Season, Stage 1 | November 6, 2016 | 1 | 1:57 | Guangzhou, China | |
| Win | 6–4 | Yousef Wehbe | Submission (rear-naked choke) | Full Metal Dojo 8 | January 10, 2016 | 2 | 2:56 | Phuket, Thailand | Welterweight debut. |
| Loss | 5–4 | Ary Santos | Submission (rear-naked choke) | MMA Super Heroes 6 | October 25, 2014 | 1 | 3:24 | São Paulo, Brazil | |
| Win | 5–3 | Bruno Pereira | Submission (armbar) | Strong Fight Combat 2 | June 14, 2014 | 3 | 2:13 | Taubaté, Brazil | |
| Loss | 4–3 | Claudiere Freitas | Submission (triangle choke) | Premium Fight Championship 3 | November 22, 2013 | 1 | 3:10 | Campinas, Brazil | |
| Win | 4–2 | Cosme Santos | KO (body kick) | Brazil Combate 2 | November 10, 2013 | 1 | 2:21 | Americana, Brazil | |
| Loss | 3–2 | Diogo Cavalcanti | Submission (heel hook) | Standout Fighting Tournament 1 | September 20, 2013 | 1 | 4:54 | São Paulo, Brazil | Return to Lightweight. |
| Win | 3–1 | Rodrigo Haro | Decision (majority) | Detonic Fight 2 | May 11, 2013 | 3 | 5:00 | Ouro Fino, Brazil | Featherweight debut. |
| Loss | 2–1 | Rafael Nunes | TKO (retirement) | Max Fight 13 | May 13, 2012 | 1 | 2:15 | São Paulo, Brazil | |
| Win | 2–0 | Renato da Silva Jr. | TKO (punches) | Romani Fight Brazil 1 | March 24, 2012 | 3 | 4:08 | Taubaté, Brazil | |
| Win | 1–0 | Sergio Vieira | TKO (punches) | Max Fight 11 | March 17, 2012 | 2 | 2:05 | Campinas, Brazil | Lightweight debut. |