THE COMPLETE RECORD
This profile is part of the recursive Fight Atlas graph. Open any opponent below to load that athlete’s complete professional career, then continue through every linked opponent without returning to a third-party record page.
EVERY RECORDED BOUT
Complete professional fight history, including competition before and outside UFC. Use the controls to isolate an opponent, promotion, method or result.
| Result | Date / record | Opponent | Event | Finish details |
|---|---|---|---|---|
| L | 4–2–0 after bout | Juan MirandaView status and profile → | TC 34 - Total Combat 34 | KO (Punches)Round 1 Time 0:57 Referee Herb Dean |
| W | 4–1–0 after bout | Mike de la TorreView status and profile → | TC 30 - Total Combat 30 | Submission (Rear-Naked Choke)Round 2 Time 1:52 Referee Not listed |
| L | 3–1–0 after bout | Sam LieraView status and profile → | TC 22 - Total Combat 22 | KO (Punch)Round 1 Time 0:18 Referee Not listed |
| W | 3–0–0 after bout | Daniel McWilliamsView status and profile → | TC 21 - Total Combat 21 | TKO (Punches)Round 1 Time 1:31 Referee Josh Rosenthal |
| W | 2–0–0 after bout | Chris KennedyView status and profile → | TC 18 - Nightmare | Decision (Unanimous)Round 3 Time 5:00 Referee Not listed |
| W | 1–0–0 after bout | Grant WhitmerView status and profile → | TC 14 - Throwdown | TKO (Punches)Round 1 Time 0:35 Referee Jason Herzog |
Fight Atlas republishes factual bout results, not source articles or photography. Belt markers appear only when championship status is confirmed by an official promotion source; unverified bouts are never inferred. The matched source name for this profile is Joshua Matthew Williams.
Verify source record ↗Every verified opponent opens another full career
6 professional bout rows are displayed from the source record. 6 unique opponent identities have a stable source ID and an internal Fight Atlas route. Every opponent row has a verified identity link.
Source and correction standard
The complete professional history is retrieved from the established public fight-record source and cached for up to 24 hours. Current-roster status remains separate from historical career data and does not imply retirement.