Born in Enfield, Greater London,[4] Onomah came through the academy system at Tottenham Hotspur. He was first called up for the first team on 5 January 2015, remaining an unused substitute in their 1–1 draw away to Burnley in the FA Cup third round,[5] and made his debut nine days later in the replay, replacing Andros Townsend for the last 15 minutes of a 4–2 victory at White Hart Lane.[6] On 24 May, he was included in the matchday squad for a Premier League game for the first time, remaining unused as Tottenham won 1–0 at Everton in the last game of the season.[7]
In the 2015–16 season, Onomah changed his shirt number to 25, which was included on the club's list of first-team numbers.[8] He made his Premier League debut in a 3–1 home victory over Aston Villa on 2 November 2015, replacing Dele Alli for the final minutes.[9] On 10 December, Onomah made his first start for Tottenham playing 90 minutes in a 4–1 victory over AS Monaco.[10]
On 4 August 2017, Onomah joined Aston Villa on loan for the season.[11] He scored his first goal for Aston Villa in a 1–1 draw at Bristol City on 25 August 2017.[12]
On 31 August 2018, Onomah joined Championship side Sheffield Wednesday on loan for the season.[13]
Fulham
On the final day of the 2019 transfer window Onomah joined Fulham,[14] as part of the £25 million transfer that saw Ryan Sessegnon move in the other direction.[15] He scored his first goal for Fulham in a 2–1 win over Leeds United on 21 December 2019.[16]
On 27 July 2020, Onomah scored a solo goal to open the scoring against Cardiff in the first leg of their EFL Championship play-off semi-final.[17] The match ended in a 2–0 win for Fulham.[18] After making 39 appearances for Fulham over the next 30 months, Onomah's contract was mutually terminated on 31 January 2023.[19]
Preston North End
On 31 January 2023, Preston announced they had signed Onomah on a short term deal until the end of the season.[20] On 27 June 2023, it was confirmed that Josh Onomah would leave Preston upon the expiration of his contract.[21]
After his release from Preston, Onomah joined Stoke City on trial.[22]
Blackpool
On 3 October 2024, Onomah joined Blackpool on a short-term deal.[23]
Onomah represented England at the 2016 UEFA European Under-19 Championship and made 4 appearances in the tournament where England finished semi-finalists.[29]
2017 FIFA U-20 World Cup
Onomah was in the England under-20 team in the 2017 FIFA U-20 World Cup. He received a red card in the quarter-finals match against Mexico, so he missed the semi-final against Italy.[30] He returned for the final where England beat Venezuela 1–0, which is England's first win in a global tournament since their World Cup victory of 1966.[31]