Hirwani came from a well-off family in Gorakhpur. His father owned a brick factory. Hirwani moved to Indore in his teenage where he stayed in a room near the ground under the guidance of the Madhya Pradesh cricketer Sanjay Jagdale.
Hirwani made his first class debut for Madhya Pradesh at the age of 16 and took five wickets on his debut. He did much better in the following seasons and took 23 wickets in an under-19 three Test series against Australia.
His big break came for India U-25 against the touring West Indians in 1987–88. He failed in the first innings but took all the six wickets to fall in the second. This got him selected to the Test team.
He is an alumnus of the Guru Gobind Singh Sports College, Lucknow.
Hirwani's debut was in the final Test of the series at Madras. The wicket was underprepared. India won an important toss and made 382. Hirwani took three of the five West Indian wickets to fall on the second day. On the third morning, Hirwani clean-bowled Vivian Richards with a googly which the batsman failed to pick, and dismissed the remaining four batsmen to finish with 8 for 61. This made him only the fourth bowler to take eight wickets in an innings on debut.
Set 416 to win in the second innings West Indies were dismissed in about 40 overs. The batsmen tried to hit out, the result of which was five stumpings for the wicket-keeper Kiran More. Hirwani took 8 for 75, for match figures of 16 for 136. This bettered the record of Bob Massie who had taken 16 for 137 on his debut in 1988, and is still a record to date.
More success followed in the home series against New Zealand the next year. The pitches afforded spin; Hirwani took 20 wickets in three Tests, and his partner Arshad Ayub 21. In his first four Tests he had taken 36 wickets, the most by any bowler at this stage of their career.
Hirwani won the man of the series in a three nation tournament in Sharjah a few months later, capturing 10 wickets in three matches. In the process, he became the first Indian bowler to capture 4 wickets in 3 consecutive ODIs.
His career took a turn for the worse in the tour of West Indies in 1989–90. The batsmen deliberately attacked his bowling and even at Port of Spain, where the wicket helped spinners, he could do little.
Thereafter he had little success in his international career. Hirwani was too slow in the air to cause trouble, except on wickets which turned sharply. One of the few memorable performances was in the last league match of the 1991–92 World Series Cup. India needed to beat West Indies to qualify for the final. Picked unexpectedly, Hirwani played an important part with a spell in which he had Brian Lara stumped off a flipper and Richie Richardson leg before wicket on the backfoot with a leg break. This was not sufficient to find him a place in the team for the World Cup that followed.
His next chance came in a Test against New Zealand four years later. On a rain affected match, he took 6 for 59. He toured England in 1996 and played two more Tests against South Africa at home. In 2001, he was picked in the fourteen for play Australia at home, but he never made the final eleven. After the series, he went to the press, criticising Indian captain Sourav Ganguly for not choosing him.
Narendra Hirwani continued to be a prominent bowler in domestic cricket. He took over 400 wickets for Madhya Pradesh in Ranji trophy and retired from first-class cricket at the end of the 2005–06 season.
On 3 September 2014, Narendra Hirwani was appointed as the chairman of Ranji Trophy Tournament Selection Committee of the Madhya Pradesh Cricket Association.
Hirwani holds the Test record (World Record) of bowling 59 overs unchanged without a break (other than for scheduled intervals), during a test match against England at The Oval in 1990.