The BBC presenter was snapped by an eagle-eyed member of the public while shopping at the supermarket in Barnes, south west London.
He said that he realised his mistake and hastily put on a face covering when shoppers "gave him daggers".
The Match of the Day host, 59, had previously taken a selfie outside the same branch with a mask captioned: "I'm taking no chances.''
He tweeted an apology to his fellow shoppers last night, saying: “In my old age, I went into a store and forgot to put my mask on.
A post shared by Gary Lineker (@garylineker) on Apr 8, 2020 at 8:42am PDT
“Was wondering why people were giving me daggers. Realised after a couple of minutes and hastily put it on. Felt awful and embarrassed. Apologies to those present.”
Comedian David Baddiel responded by joking: “I think we all know you can't get one to fit round your ears.” He added: “P.S I love Gary. Even his ears.”
Lineker was accused of being a hypocrite when Susan Hall, leader of the GLA Conservatives, tweeted the image under the caption: “Do as I say, not as I do ...”
Others leapt to his defence, saying: "Easily done. Finding a mask in your pocket is the modern equivalent of finding a fiver in your jacket!"
The former England striker had been vocal about the importance of wearing masks. On July 14, he tweeted: "Why would anyone object to wearing a mask in a shop? Not exactly a hardship. What a country of snowflakes we've become.''
He also tweeted: "Wearing masks, of all things, is the most obvious thing we can do to help decrease the spread of the virus and the smallest of all the sacrifices. No brainer.''
A 38-year-old shopper who spotted Lineker shopping mask-free on Sunday told The Sun: "If it was anyone else I wouldn't mind so much. But it's frustrating for someone who tries to take the moral high ground as much as he does.''