We determine centroid-moment tensor (CMT) solutions by minimizing waveform differences between observed and simulated seismograms based on an adjoint method. Synthetic seismograms and Fréchet derivatives are calculated based on a spectral-element method. The non-linear adjoint CMT inversion algorithm requires three simulations for each iteration: one ‘forward’ simulation to obtain synthetics for the current source parameters, one ‘adjoint’ simulation which involves injecting time-reversed differences between observed and simulated seismograms as simultaneous virtual sources at each of the receivers, and an extra forward simulation to compute the step length in the conjugate-gradient direction. Whereas the vertical component of the adjoint wavefield reflects the radiation pattern near the centroid location, the components of the adjoint strain tensor capture the elements of the moment tensor. We use the method to determine adjoint CMT solutions for two representative southern California earthquakes using recent 3-D crustal model CVM-6.2. The adjoint CMT solutions are in good agreement with classical Hessian-based CMT solutions involving 3-D Green's functions. In general, adjoint CMT inversions require fewer numerical simulations than traditional Hessian-based inversions. This faster convergence holds promise for multiple moment-tensor and kinematic rupture inversions in 3-D earth models.