While both the terms refer to mimicking the behavior of something, they, however, are not the same in the sense of- degree to which they duplicate the behavior along with some traditional meaning associated with them. In the earlier years of its inception, the term Emulation was used only for hardware based simulations, which has given way to software based simulations in the recent years only.
The term is used for those simulations where the program/ software (or some combination of software and hardware) are used to duplicate the actual behavior of the system to such an extent that the system may be replaced with this simulation, (Which is never possible with other Simulation process). Thus an emulating process must include some internal functionality replication of the target system so as to provide the actual behavioral duplication. A very popular example is the Android emulator which provides a real mobile device like functionality for testing of Android applications.
Simulation is the process which just replicates the outward behavior of the system. Thus it may not have the actual internal processing, working to provide that behavior. (On a very abstract level, it can be thought of as a program which has hard coded values as input output relationship instead of any actual algorithm working to provide that I/O relation.). A flight simulator is the popular example for such systems.