He hinted the child will have his surname, tweeting simply "Freddie Tommo" before following it up by saying: "Thank you so much for the all nice messages."
The selfie shows the star holding the boy, wearing a striped babygrow, to his bare, tattooed chest.
On Saturday Tomlinson said: "I'm pleased to say my baby son was born yesterday. He is healthy and pretty amazing. I'm very happy."
He briefly dated Freddie's mother, Los Angeles-based stylist Briana Jungwirth, in May 2015 after he broke up with his long-term girlfriend Eleanor Calder.
News of the pregnancy broke in August, although there has never been an official statement.