Abstract We give a general method based on dyadic Calderón–Zygmund theory to prove sharp one- and two-weight norm inequalities for some of the classical operators of harmonic analysis: the Hilbert and Riesz transforms, the Beurling–Ahlfors operator, the maximal singular integrals associated to these operators, the dyadic square function and the vector-valued maximal operator. In the one-weight case we prove the sharp dependence on the A p constant by finding the best value for the exponent α ( p ) such that ‖ T f ‖ L p ( w ) ⩽ C n , T [ w ] A p α ( p ) ‖ f ‖ L p ( w ) . For the Hilbert transform, the Riesz transforms and the Beurling–Ahlfors operator the sharp value of α ( p ) was found by Petermichl and Volberg (2007, 2008, 2002) [47–49]; their proofs used approximations by the dyadic Haar shift operators, Bellman function techniques, and two-weight norm inequalities. Our proofs again depend on dyadic approximation, but avoid Bellman functions and two-weight norm inequalities. We instead use a recent result due to A. Lerner (2010)  to estimate the oscillation of dyadic operators. By applying this we get a straightforward proof of the sharp dependence on the A p constant for any operator that can be approximated by Haar shift operators. In particular, we provide a unified approach for the Hilbert and Riesz transforms, the Beurling–Ahlfors operator (and their corresponding maximal singular integrals), dyadic paraproducts and Haar multipliers. Furthermore, we completely solve the open problem of sharp dependence for the dyadic square functions and vector-valued Hardy–Littlewood maximal function. In the two-weight case we use the very same techniques to prove sharp results in the scale of A p bump conditions. For the singular integrals considered above, we show they map L p ( v ) into L p ( u ) , 1 < p < ∞ , if the pair ( u , v ) satisfies sup Q ‖ u 1 / p ‖ A , Q ‖ v − 1 / p ‖ B , Q < ∞ , where A ¯ ∈ B p ′ and B ¯ ∈ B p are Orlicz functions. This condition is sharp. Furthermore, this condition characterizes (in the scale of these A p bump conditions) the corresponding two-weight norm inequality for the Hardy–Littlewood maximal operator M and its dual: i.e., M : L p ( v ) → L p ( u ) and M : L p ′ ( u 1 − p ′ ) → L p ( v 1 − p ′ ) . Muckenhoupt and Wheeden conjectured that these two inequalities for M are sufficient for the Hilbert transform to be bounded from L p ( v ) into L p ( u ) . Thus, in the scale of A p bump conditions, we prove their conjecture. We prove similar, sharp two-weight results for the dyadic square function and the vector-valued maximal operator.