One area of confusion is that each is a matter of what you're doing at a given time. One can easily have a job which carries one label, but be doing on of the other things. My job title, for instance, says that I'm a scientist, but much of what I actually do is what I consider engineering. No problem to my psyche as I respect engineering. The only question then is whether I can do good engineering. Conversely, some with a job title of engineer may at times be doing science. What matters to me is not the title, but what one does.
The main divider between the three, as I see it, is how do you decide that you're right (or, have done good math, science, or engineering). In mathematics, you work within a rigorous framework and prove that you are correct (that a theorem you or somebody else proposed is either true or false). You might have made an error in your proof, and the decision on that is made by other mathematicians.
Science and engineering both appeal to nature, rather than scientists and engineers. The scientists compare the predictions of their theory to the observations. If they're close enough, then the theory is considered good enough. It isn't proven. Next year we might have more and better observations, and the theory might not agree well enough any more. A different side is, scientists can think of highly idealized systems (frictionless surfaces, massless strings, point masses, ...) which don't actually exist in nature. If the predictions are close enough, however, then the science is good.
Engineering, does appeal to nature (did the bridge hold up?), but has very limited degrees to which it can simplify its systems (real bridge beams vary in their properties, while ideal ones don't, and the difference can crash the bridge). The more significant distinction from science goes back to the matter of how you decide you've done good engineering. Engineering, I take it, is the application of a knowledge of science to achieve a useful end. But who decides useful? Somebody, somewhere, writing the checks to support the project. It would be very easy to
build a several mile long bridge, for instance, if your budget were unlimited and so were the time for construction. But for real engineering, you have serious limits on time and money. How do you build a bridge fast enough and cheap enough, while still carrying the required load? That's an engineering challenge.