Depenedency injection means that someone else(the container) gives the dependent objects to your code. For example your class is dependent on DataSource object and you specify this dependency in your code so that the EJB container gives you the requested DataSource. No lookup code to write.
Inversion of control or dependency injection is a term used to resolve component dependencies by injecting an instantiated component to satisfy dependency as opposed to explicitly requesting a component. So components will not be explicitly requested but components are provided as needed with the help of an Inversion of controller containers. This is analogous to the Hollywood principal where the servicing components say to the requesting client code �don�t call us, we�ll call you�. Hence it is called inversion of control.