The former Beatle, 65, poses next to the words: "I Am Paul McCartney, And I Am A Vegetarian" in the advert for People for the Ethical Treatment of Animals (Peta).
"Many years ago, I was fishing, and as I was reeling in the poor fish, I realised, 'I am killing him – all for the passing pleasure it brings me'," he said.
"Something inside me clicked. I realised as I watched him fight for breath that his life was as important to him as mine is to me."
Sir Paul, who is pictured wearing a trilby and a T-shirt with the words "Eat No" over a picture of a cow, said he believed if the world rejected meat it could bring an end to famine.
His late wife, Linda, who died of cancer in 1998, launched a line of vegetarian food in Britain.
Oscar-winning actor Forest Whitaker, former Baywatch star Pamela Anderson and Hollywood actress Alicia Silverstone are among other celebrities posing for the vegetarianism campaign.