As a child he attended the Church Mission School (CMS) in Karachi.
Mushtaq began his first-class career at the age of 13 years and 41 days, scoring 87 and taking 5 for 28 on debut. He played for Karachi and Pakistan International Airlines at home and went on to represent Northamptonshire in county cricket from 1966 to 1977, scoring more than 1,000 runs in every season. In both 1967 and 1971 he stayed with the county during Pakistan tours of England, playing for the touring side only in Test matches and a few other fixtures.
Mushtaq captained Northamptonshire between 1975 and 1977, and in 1976 led the side to victory in the Gillette Cup, the county's first-ever trophy, and to second place in the County Championship, equalling its best-ever position. But his captaincy ended in some controversy. According to Wisden 1978 edition, Mushtaq resigned, claiming that his future had not been made clear and that there were rumours – which turned out to be true – that former captain Jim Watts was to be reappointed for 1978. Mushtaq had in any case signed for the Packer venture in Australia, but there were harsh words from the county's chairman about dressing room politics and Mushtaq did not play for Northants again.
He scored 72 hundreds in a 502-game first-class career. He was the first Pakistani to score 25,000 first-class runs, ending up with 31,091, more than half of them for Northamptonshire. His record included a highest score of 303 not out. As a wrist-spinner, he bowled the legbreak, googly and flipper.
On 26 March 1959 against West Indies at Lahore, Mushtaq succeeded his elder brothers Wazir and Hanif into Test cricket. At 15 years and 124 days, he was the youngest person to play Test cricket at the time, though some doubt exists as to his exact age. He scored only 18 runs in the match as Pakistan were defeated by an innings and 156 runs. The first of his ten Test hundreds would come in his 6th Test, 101 against India in Feroz Shah Kotla. He is believed to have been just 17 and 78 days old at the time of the innings which became a record. The record stood for over 40 years until it was bettered by Mohammad Ashraful. His next century came against England in 1962 and he would have to wait another 9 years until his next.
In 1970 he played for the Rest of the World against England in the series that was later stripped of its Test status. Early in 1973, he scored 121 against Australia at Sydney and 201 against New Zealand in his next match a month later. In the latter game, he became the only cricketer other than Denis Atkinson to score a double century and take five wickets in a Test match. He finished the year with 777 runs at the average of 86.33.
He captained Pakistan in 19 Test matches from 1976–77 to 1978–79. During this time, he scored 121 and 56 and took eight wickets against West Indies at Port of Spain in 1976–77 to inflict a rare home defeat on West Indies. He led Pakistan to a 2–0 win over India when the two countries played their first series against each other in eighteen years in 1978–79.
Mushtaq is regarded as one of the first cricketers to use the reverse-sweep in the 1970s. Though his elder brother Hanif Mohammad is sometimes credited as the inventor. Cricket coach Bob Woolmer has been credited with popularising the stroke.
He joined Kerry Packer's World Series Cricket in the late seventies. He went on to become coach of Pakistan and led the side which reached the final of the 1999 World Cup.