Hypergraph partitioning is an important problem with extensive application to many areas, including VLSI design, efficient storage of large databases on disks, and data mining. The problem is to partition the vertices of a hypergraph into k equal-size parts, such that the number of hyperedges connecting vertices in different parts is minimized. In recent years, multilevel partitioning algorithms have become the standard approach for partitioning large and irregular hypergraphs as they provide high quality solutions, can scale to very large hypergraphs, and require relatively small amount of time. These algorithms were initially developed for partitioning large graphs derived from scientific computations, but their advantages were quickly recognized by the VLSI CAD community and a number of different multilevel algorithms have been developed. In this chapter we try to provide an overview of the multilevel paradigm and describe the various algorithms that it uses and why it works.