Courtney Andrew Walsh was born on 30 October 1962 in Kingston, Jamaica. He played his early cricket there with the same cricket club for which Michael Holding also played cricket—the Melbourne club. Walsh first claim to fame came in 1979 when he took 10 wickets in an innings in school cricket and three years later made his first-class cricket debut. He played 427 matches of this format between 1981 and 2001, and took 1,807 wickets at the average of 21.71, including 104 five-wicket hauls and 20 ten-wicket hauls. Walsh played first-class cricket for Gloucestershire County Cricket Club (Gloucestershire CCC) from 1985 to 1998.
Walsh played cricket for the West Indies from 1984 to 2001, Gloucestershire County Cricket Club (Gloucestershire CCC) from 1984 to 1998, Jamaica cricket team from 1981–82 to 1999–00, Rest of the World XI in 1987 and West Indies A in 1991–92. He first played for Gloucestershire CCC in 1984 and was a mainstay of the side until 1998.
Walsh made his Test debut against Australia in Perth in 1984, taking 2 wickets for 43 runs. He played six Test matches during the 1984–85 season, five against Australia in the 1984–85 series between the teams, and one Test against New Zealand in the home series. He took 16 wickets in the season conceding 507 runs. In the same season, Walsh also made his One Day International debut against Sri Lanka at Hobart during the World Series Cup. He took one wicket for 47 from 10 overs in the match. In the next two seasons, Walsh played a match at home against England, three matches against Pakistan and three matches against New Zealand, both outside the West Indies. He too 29 wickets from seven matches in these seasons, including a five-wicket haul against New Zealand. In 1987, Walsh was named as one of the Wisden Cricketers of the Year for his performance the previous year.
In the 1987–88 season, Walsh toured India and played four Test matches against them, taking 26 wickets at an average of 16.80. In the first Test of the series at Feroz Shah Kotla Ground, he took six wickets for 67 runs, including five wickets for 54 runs in India's second innings. In the first innings of the second Test at Wankhede Stadium, he repeated the same performance of five for 54. In that season, Pakistan cricket team visited the West Indies and played three Tests there. In the 1987 Cricket World Cup Walsh backed out to ball and run out Saleem Jaffar as he was backing up as Pakistan required two off the last ball to qualify for the semi finals, Abdul Qadir eventually scored the winning runs and West Indies lost but Walsh was deservedly feted for his sportsmanship, he even received a hand-woven carpet from a local fan. Walsh underperformed in the series, taking only four wickets from three matches. He played four matches against England in 1988, and took 12 wickets at an average of 34.33. During the West Indies tour of Australia in 1988–89, Walsh played five Tests and took 17 wickets at 29.41. His best bowling in the series came the first innings of the first match, taking four wickets for 62 runs, including a hat-trick. He took a 'complicated' hat trick at the Brisbane Cricket Ground, dismissing Australia's Tony Dodemaide with the last ball of the first innings and Mike Veletta and Graeme Wood with his first two deliveries in the second. During that winter he also took 10 wickets in a Test match for the first time against India in Kingston.
In 1994, he was appointed captain of the West Indies for the tours of India and New Zealand after Richie Richardson was ordered to rest because of "acute fatigue syndrome". In 1995, he took 62 Test wickets at an average of 21.75 runs per wicket, a performance which he bettered in 2000 when he took 66 Test wickets at an average of 18.69, including 34 wickets in the Test series against England at an average of 12.82 runs per wicket. Coming close to the record for a West Indian bowler of 35 wickets in a Test series (set by Malcolm Marshall in 1988). In the 1990s, his partnership with Curtly Ambrose was one of the most feared bowling attacks in world cricket.