The primary physical difference between a tuxedo and a suit is the presence of satin. Tuxedos have satin facing on the lapels, buttons, pocket trim, and a satin side stripe down the leg of the trousers.
Suits don’t incorporate any satin and usually have either plastic buttons or buttons faced with the same fabric as the coat (aka self buttons.)
But more than the physical difference, it’s important to note that a tuxedo sends a different message than a suit does.
A tuxedo sends the message that you’re wearing something specifically for a memorable occasion and you would look out of place anywhere else. It commemorates the event in a way that a suit can’t. You can certainly look incredibly dapper in a suit, but you can wear a suit anywhere, any day, regardless of whether you typically do or not. A tuxedo is a special ensemble that you only wear for special occasions. That’s the point of it, and the reason we prefer tuxedos over suits for formal events.