A simulator tries to EXACTLY reproduce the behavior of systemX on systemY. But an emulator tries to emulate most of the function os systemX on systemY.
Mostly, emulation is done to emulate the internal architecture/design of systemX on systemY, and simulation is done to emulate the visible functions of a device/system.
The difference is so minute that for all matters trivial, they can be used inter-changeably.