He was elected as Member of Parliament (MP) for Glasgow Craigton at the 1959 general election and served for that seat, and after its abolition in 1983 for Glasgow Govan, until 1988. He served in the Wilson government of 1964–1970 as Under-Secretary of State for the Air Force from 1964 to 1966, as Under-Secretary of State for Scotland from 1966 to 1970, and in the Callaghan government of 1976–1979 as Secretary of State for Scotland; he subsequently served as Shadow Secretary of State for Scotland under new leader Michael Foot.