In engineering you often do want to generalize to a whole class of examples, and can hardly help doing so. If you want to nail two pieces of wood together, and it's never been done before, you can't help but discover general principles along the way that are applicable to all wood-nailing scenarios. Then one day you'll go to nail two bits of different wood together, they'll behave differently and heck, you'll have discovered some additional facts about different types of wood.
Eventually you'll hit your finger with the hammer and discover that it really hurts to do so. Now I come to think of it, I would classify "hitting your finger with a hammer really hurts" as a perfect example of those true facts about the world which has nonetheless never been the subject of a proper experiment and certainly wasn't derived from reason, either.
I think the fundamental difference between science and engineering revolves around that when engineering you work with the assumption that you know everything about how the world works and can apply that to solve a problem. With science, you work with the certainty that you know nothing true about how the world works and you apply that to see further.
Fundamentally, science is simply this:
Observe. Theorize. Repeat.
Many of the observations in science take place in a controlled, repeatable laboratory setting. Many do not; astronomers can't exactly drag other galaxies into the lab.
Intervention via experiment is another fundamental part of science.
The scientist purposely exposes the test group to the chemical and actively controls the environment of both the test and control group.
Experiment is intervention even above the quantum scale.
In Engineering, I want to solve this one challenge; I don't want to generalize to a whole class of examples or the whole Universe.
In Science, I make a hypothesis, usually based on prior observations, I conduct controlled experiments, not just observing the World around me, and from the resulting data, I derive a theory.