Most caching strategies in information-centric networks (ICN) primarily focus on pushing popular content to the network edge. As such, these approaches make limited use of caches in the network core, reduce cache utilization due to content duplication and provide limited performance improvement. In this paper, we propose Greedy Caching to determine the set of content to be cached at each network node. Greedy Caching starts by caching the most popular content, calculated based on the total incoming request stream from users, at the network edge. The algorithm then recalculates the relative popularity of each piece of content based on the request miss stream from downstream nodes to determine the set of content to be cached in the network core. We perform exhaustive simulation in the Icarus simulator [1] using realistic Internet topologies (e.g., GARR, GEANT, and WIDE) and demonstrate that Greedy Caching provides significant improvement in content download delay (referred to as latency) over state-of-the-art routing and caching strategies for ICN for a wide range of simulation parameters. Simulation results suggest an improvement of 5-28% in latency and 15-50% improvement in hit rate over state-of-the-art policies.