Nafees first played in the national team in Bangladesh's maiden tour of England. Nafees scored his maiden first-classcentury, as well as his first in Tests, at Fatullah in April 2006 against Australia. He scored his maiden one-day hundred against Zimbabwe in August 2006. Nafees was the first Bangladeshi batsman to score a century in Champions Trophy history and he held the record for the highest individual score for Bangladesh in Champions Trophy until Tamim Iqbal surpassed his milestone Nafees was appointed vice-captain for the Champions Trophy in India in October 2006 with the view of grooming a successor for Habibul Bashar. The tournament was a successful one for him as he scored his second ODI century, again Zimbabwe were his opponents. He scored his third century against Zimbabwe again in November. Nafees finished 2006 with over 1,000 ODI runs, becoming the first Bangladeshi to pass the milestone in a calendar year. Once again available to play for Bangladesh, Nafees returned to the squad for the first time since joining the ICL in preparation for Bangladesh's home series against India in January. Bangladesh lost both Tests, and Nafees played in one, scoring 25 runs. His Test come-back lasted one match and Nafees would have to wait more than 18 months before playing another Test. He made his return in an ODI series against New Zealand in October 2010 in which he scored 35 as Bangladesh won that match and 73 in the next match as Bangladesh once again took a seven-wicket victory. Despite his good performance Nafees was originally selected on the grounds that Tamim Iqbal was injured and eventually made way for him in the series against Zimbabwe and he was placed on standby in case of an injury. In the first two years after his return from the ICL Nafees played just four ODIs. Included in Bangladesh's squad for the 2011 World Cup, Nafees played in two matches as the team exited the tournament in the group stage. He was retained in the squad to face Australia in three ODIs immediately after the World Cup finished in April, and struck two half-centuries that cemented his place in the side. Nafees was recalled to the squad to face Zimbabwe in August. In the one-off Test, his first since January 2010, he made scores of 50 and 9 as Bangladesh unexpectedly slid to defeat. After scoring 82 runs including a half-century in the first Test against the West Indies in October, Nafees endured a run of low scores across Tests and ODIs that jeopardised his place in the team. He responded by striking an innings of 97 against Pakistan in the second match of a two-Test series. The 180-run partnership was a landmark in several ways: it was record for Bangladesh's fifth wicket, the first time the team had batted through a whole session without losing a wicket since March 2010, and the team's first century partnership in Tests since June 2010.
Captaincy
He was the first T20I captain for Bangladesh and also he's the youngest T20I captain for Bangladesh at the age of 21 years and 211 days and he's 2nd only youngest to lead his team in T20I after Rodney Trott
Domestic career
In June 2008 Nafees joined the unauthorised Indian Cricket League and was given a ten-year ban by the Bangladesh Cricket Board however he severed his ties with the league in September 2009 and was therefore available for national selection. The Bangladesh Cricket Board founded the six-team Bangladesh Premier League in 2012, a twenty20 tournament to be held in February that year. The BCB made Shahriar the 'icon player' for Barisal Burners. Despite his status, Nafees played just five matches, scoring 38 runs. In the 2nd edition of BPL held in 2013, he joined Khulna Royal Bengals. He was selected as the captain of the team. He scored the maiden century in BPL 2. Before him, no other Bangladeshi player scored a century in the history of BPL. He was the leading run-scorer for Agrani Bank Cricket Club in the 2017–18 Dhaka Premier Division Cricket League, with 550 runs in 13 matches.