Herein we describe a simple protocol for the efficient generation of site-specific ubiquitin-protein conjugates using click chemistry. By using two different methods to expand the genetic code, the two bio-orthogonal functionalities that are necessary for Cu(I)-catalyzed azide-alkyne cycloaddition (CuAAC), an alkyne and an azide, are co-translationally incorporated into the proteins of interest with unnatural amino acids. Protein ubiquitylation is subsequently carried out with the purified proteins in vitro by CuAAC. In addition, we provide a protocol for the incorporation of two unnatural amino acids into a single ubiquitin, resulting in a 'bifunctional' protein that contains both an alkyne and an azide functionality, thereby enabling assembly of free ubiquitin chains as well as ubiquitin chains conjugated to a target protein. Our procedure enables the synthesis of nonhydrolyzable ubiquitin-protein conjugates within 1 week (given that the relevant cDNAs are at hand), and it yields conjugates in milligram quantities from 1-liter expression cultures. The approach described herein is faster and less laborious than other methods, and it requires only standard molecular biology equipment. Moreover, the protocol can be readily adapted to achieve conjugation at any site of any target protein, which facilitates the generation of custom-tailored ubiquitin-protein conjugates.