Robertson was born in Cardonald, Glasgow and began his career playing as a right winger at English club Middlesbrough. He wasn't offered a professional contract at Middlesbrough and thus joined up with Scottish club Cowdenbeath. After his stint there he signed for St Mirren in 1962. With the "Buddies", Robertson got a sum of 54 caps and scored 12 goals. After his spell with St. Mirren, Robertson was bought by Tottenham Hotspur in 1964 for £25,000. During the 1966–67 season he scored the first goal in Tottenham's 1967 FA Cup Final victory against Chelsea. With Spurs he made a total 181 appearances including four as substitute and scored 31 goals in all competitions. He went on to join Spurs's rivals Arsenal in October 1968, in a straight swap for David Jenkins, making him one of the few players to play for both clubs. Robertson made his debut for Arsenal in a goalless draw against West Ham United in October 1968. Robertson in all played a total of 19 league matches in the 1968–69 English footballing season. The following 1969–70 season he made a further eight appearances to be capped a total of 27 times at and away from Highbury. Robertson then joined up with Ipswich Town in March 1970 for £50, 000. He is as well one of only two players to score for both sides in the North London derby. In total Robertson played 59 games for Arsenal, scoring eight goals altogether. At Portman Road Robertson became a vital member of Bobby Robson's squad as Ipswich ensured survival in 1969–70 and 1970–71. Within the 1971–72 season Robertson helped the club move up to a mid-table position within the league. In July 1972 Robertson joined Stoke City for a fee of £80,000. At Stoke he became a regular under manager Tony Waddington in the 1972–73 and 1973–74 seasons. As so he suffered a broken leg while playing against Coventry City in December 1974. He then struggled to get back into the side and after two seasons without regular football he decided to leave for the Seattle Sounders of the North American Soccer League. He played 29 matches for the Seattle Sounders before returning to England to play for Walsall. Robertson then ended his playing days at Crewe Alexandra.
International career
Robertson was capped by Scotland at full and amateur level.