His acting career began in Maxwell Anderson's Winterset in San Francisco in 1946. After a few roles in plays in California he moved to New York. His first Broadway role was as a guard in Maxwell Anderson's Barefoot in Athens in 1951. His other stage roles include Shaw's Saint Joan, and Tiger at the Gates, Christopher Fry's version of a Jean Giraudoux play, which ran 1959–60 on Broadway. He appeared in the original Broadway cast of One More River (1960).
His play The Sin of Pat Muldoon, about a Roman Catholic family, ran for five performances from March 13 to 16, 1957 at the Cort Theatre on Broadway. The central character, played in that production by James Barton, is a father who renounces his faith following the death of his son and spends his savings on partying and loose women before having a heart attack. Though he attempts to resolve some of his family's problems, he dies unrepentant. Playwright and Producer Maxwell Anderson, given the script to consider producing it, condemned the play as lying on well-trampled ground following Seán O'Casey's Juno and the Paycock, declaring, "I've grown weary of the whole subject. An ancient, irritable, blasphemous, dying but loveable Irishman says his last ten thousand words and goes to his own place. The hell with him."
He moved to California in 1960 to work in film and television. His film roles included a cockney ne'er-do-well in My Fair Lady (1964), Boss Kean in Cool Hand Luke (1967), In Cold Blood (1967) as murder victim Herbert Clutter,John acted as the. pilot, FLIGHT instructor for Aunt Bea in Season 8, "Aunt Bea's Big Moment"<Credits at the end of the show></Season 8, episode 23> Halls of Anger (1970), Woody Allen's Sleeper (1973), rancher David Braxton in The Missouri Breaks (1976), and Orval in First Blood (1982). He played Jimmy Tomorrow in John Frankenheimer's American Film Theater movie of The Iceman Cometh (1973), alongside Fredric March, Lee Marvin, Robert Ryan and Jeff Bridges.
He was cast as Walter Watson, the Olympic Club trainer of the boxer James J. Corbett (played by James Davidson) in the 1966 episode "The Fight San Francisco Never Forgot" of the syndicated television series, Death Valley Days. In the story line Watson halts a local bully and trains Corbett as his promotional rival.
In the 1979 television miniseries Freedom Road, he played Ulysses S. Grant. He appeared in several episodes of the western series The Virginian and Gunsmoke, and was Doc Holliday in the pilot of Bret Maverick. He portrayed Elsworth Chisolm in two episodes of Dynasty, and the lead character's father in T.J. Hooker. He guest starred in Little House on the Prairie in 1983, and he appeared in a 1986 episode of Highway to Heaven as an angel opposite Michael Landon. He had guest roles in dozens of other television series.
He was John of Gaunt in william Woodman's filmed version of Shakespeare's Richard II (1982): while the casts' acting was generally judged as poor, Charles R. Forker said McLiam delivered Gaunt's most famous speech "like an operatic aria" but in general was no match for Sir John Gielgud at speaking verse.
McLiam and his wife Roberta had a daughter, Claire. He died in Woodland Hills, Los Angeles, California in 1994 from melanoma and Parkinson's disease.