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 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. 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 he was dropped for the Second Test in favour of left arm orthodox spinner Pragyan 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. Later in the Indian cricket team in England in 2011 he got his highest score ever in the last test match of 84. Mishra was included in the squad for India's 2016 tour of West Indies. He played two tests and picked up six wickets.
Limited over career
Mishra made his One Day International debut against South Africa during the TVS Cup in 2003. Mishra played in the 2009 ICC Champions Trophy in South Africa. 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 less 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. He was selected in the 2nd XI of the 2014 ICC World T20 Cup by Cricinfo. 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. He was the leading wicket-taker for Haryana in the 2018–19 Vijay Hazare Trophy, with sixteen dismissals in nine matches.