Heparin, a sulfated polysaccharide belonging to the family of glycosaminoglycans, has numerous important biological activities, associated with its interaction with diverse proteins. Heparin is widely used as an anticoagulant drug based on its ability to accelerate the rate at which antithrombin inhibits serine proteases in the blood coagulation cascade. Heparin and the structurally related heparan sulfate are complex linear polymers comprised of a mixture of chains of different length, having variable sequences. Heparan sulfate is ubiquitously distributed on the surfaces of animal cells and in the extracellular matrix. It also mediates various physiologic and pathophysiologic processes. Difficulties in evaluating the role of heparin and heparan sulfate in vivo may be partly ascribed to ignorance of the detailed structure and sequence of these polysaccharides. In addition, the understanding of carbohydrate-protein interactions has lagged behind that of the more thoroughly studied protein-protein and protein-nucleic acid interactions. The recent extensive studies on the structural, kinetic, and thermodynamic aspects of the protein binding of heparin and heparan sulfate have led to an improved understanding of heparin-protein interactions. A high degree of specificity could be identified in many of these interactions. An understanding of these interactions at the molecular level is of fundamental importance in the design of new highly specific therapeutic agents. This review focuses on aspects of heparin structure and conformation, which are important for its interactions with proteins. It also describes the interaction of heparin and heparan sulfate with selected families of heparin-binding proteins.