We apply the method of support operators (SOM) to solve the 3-D, viscoelastic equations of motion for use in earthquake simulations. SOM is a generalized finite-difference method that can utilize meshes of arbitrary structure and incorporate irregular geometry. Our implementation uses a 3-D, logically rectangular, hexahedral mesh. Calculations are second-order in space and time. A correction term is employed for suppression of spurious zero-energy modes (hourglass oscillations). We develop a free surface boundary condition, and an absorbing boundary condition using the method of perfectly matched layers (PML). Numerical tests using a layered material model in a highly deformed mesh show good agreement with the frequency-wavenumber method, for resolutions greater than 10 nodes per wavelength. We also test a vertically incident P wave on a semi-circular canyon, for which results match boundary integral solutions at resolutions greater that 20 nodes per wavelength. We also demonstrate excellent parallel scalability of our code.