Virtual screening is a computational strategy used in drug discovery research to identify active small molecules against a certain biological target from a large chemical library. It typically consists of a cascade of steps to narrow down a set of hits with potential biological activities from a large small-molecule library. Virtual screening methods can be divided into two broad categories: (1) structure-based virtual screening (SBVS) and (2) ligand-based virtual screening (LBVS). SBVS methods utilize target structure information to identify molecules that fit into the binding site of the target structure. It is also named docking-based virtual screening because it uses molecular docking as the core technology. LBVS methods utilize a set of active ligands to identify similar compounds based on certain measurements. In contrast, the LBVS methods directly search a small-molecule library with a set of molecules that known activities. According to the molecular representation, the LBVS methods can be grouped as two–dimensional (2D) fingerprint similarity searching pharmacophore matching and three-dimensional (3D) shape screening. In this work, we introduced the methodology and implementations of both SBVS and LBVS and small-molecular libraries that are widely used in the field, as well as the issues and challenges facing the virtual screening campaigns.