In a medium saucepan, whisk together sugar, cornstarch, and salt.
Gradually whisk in milk until smooth.
Place over medium heat and cook, stirring constantly, until mixture thickens and begins to bubble, about 5–7 minutes.
Reduce heat to low. Slowly pour a small amount of hot mixture into beaten egg yolks, whisking constantly.
Pour egg yolk mixture back into the pan, whisking well. Cook for 2 minutes more, stirring constantly.
Remove from heat and stir in lemon zest, lemon juice, and butter until fully incorporated.
Pour pudding into serving dishes. Cover surface with plastic wrap to prevent a skin from forming. Chill until set, about 2 hours.