Mishra was initially called into the Indian squad for a Test against the West Indies in 2002, but was not selected. Mishra made his Test cricket debut against Australia in the Second Test at Mohali (PCA stadium) after captain and first-choice leg spinner Anil Kumble was injured. He took 5 wickets for 71 runs in Australia's first innings and then 2/35 in the second, making him the leading wicket-taker in the match as India proceeded to a decisive victory.[1] Despite this, Indian coach Gary Kirsten said that Mishra would be dropped if Kumble recovered for the Third Test. However, Harbhajan Singh was injured so Mishra retained his place when Kumble came in. Kumble was then injured during the Test and retired, leaving Mishra as India's first-choice Test leg spinner.
Mishra was selected for the early-2009 Test tour of New Zealand, but India opted to field only one spinner, and he watched as Harbhajan performed the spin duties alone. India's next Test was not until November 2009. Mishra took only one wicket in the high-scoring drawn First Test and was dropped for the Second Test in favour of left arm orthodox spinnerPragyan Ojha, who retained his position for the Third Test as the second spinner.
Mishra was recalled for the tour of Bangladesh and played in the First Test in Chittagong as the only spinner after Harbhajan suffered an injury. He made 50 in the second innings as a night-watchman and took seven wickets. However, he was once again dropped in the next Test for Ojha.
At the start of the Bangladesh tour, Mishra played in two ODIs against Sri Lanka and Bangladesh in a triangular tournament after Harbhajan was rested for the final two round-robin matches. He has been recalled for one day series against Zimbabwe July 2013. He won man of the match award for his 4/47 bowling against Zimbabwe in 3rd ODI played on 28 July 2013.
Mishra managed to get most wickets by any bowler in a 5-match series or tournament against Zimbabwe July 2013. The spinner also equalled Indian bowling great Javagal Srinath's world record for the most wickets in a bilateral ODI series with 18 wickets. Srinath managed his feat in 7 matches so Mishra equaled the record in fewer matches.
Mishra bowled a fine spell for two wickets against Pakistan in the 6th match of Asia Cup on 2 February 2014. Mishra's bowling figures of 2 for 28 from his 10 overs were the sixth best economical bowling figures in Asia Cup history (bowlers who have bowled a minimum of 10 overs are only considered).[2] He was selected in the 2nd XI of the 2014 ICC World T20 Cup by ESPNcricinfo.[3]
Mishra was included in the squad for India's 2016 tour of West Indies. He took three wickets in one of the two T20I games, taking his career-best 3/24 in it. In New Zealand's 2016–17 tour of India, he was included in the ODI side. He took 15 wickets in the five games, which included 5/18 in the final game that helped India win the series 3–2, and was awarded the Player of the Series.[4]
He was the leading wicket-taker for Haryana in the 2018–19 Vijay Hazare Trophy, with sixteen dismissals in nine matches.[5]
Mishra suffered a finger injury during DC's win over KKR in Sharjah. Mishra bowled only 2 overs before walking off the field.[7] Mishra has now dismissed Rohit Sharma the most number of times in IPL Mishra equaled Zaheer and Sandeep's record for dismissing a batsman most number of times in IPL.[7]
He played for Delhi Daredevils in IPL 2015, IPL 2016, and IPL 2017. In January 2018, he was bought by the Delhi Daredevils in the 2018 IPL auction.[8] He was retained in 2019 IPL. In the 2020 IPL, Mishra started well, taking 3 wickets at an economy rate of 7.20, before a finger injury ended his tournament.[9]