In the subsection The deviations of Earth's gravitational field from that of a homogeneous sphere of the Wikipedia article on Geopotential model you can see that the $J_2$ or quadrupole moment of the Earth's gravitational potential falls off much more rapidly with distance than the monopole term. In the Earth's equatorial plane, the acceleration due to the monopole and quadrupole moments are given as:
$$a_0 = -\frac{GM_E}{r^2},$$
$$a_2 = -\frac{3}{2} J_2 \frac{GM_E R_E^2}{r^4},$$
where the unit-less value of Earth's $J_2$ is about 0.0010825 and $R_E$ is the normalizing radius of the Earth of 6378136.3 meters, and the standard gravitational parameter of the Earth $GM_E$ is about 3.986E+14 m^3/s^2.
You can read a little more about Earth's $J_2$ and it's effect on gravity at the equator and poles in David Hammen's nice table.
On the Earth's surface, at the equator, the values for these two are 9.7983 and 0.0159 m/s^2 respectively, but remember that they fall of with distance as $1/r^2$ and $1/r^4$ respectively as well.
So a satellite orbiting in Earth's equatorial plane in an elliptical orbit will "think" that the Earth's gravity is stronger at periapsis than at apoapsis, even taking $1/r^2$ into account.
Since the Earth (or any oblate spheroid) "pulls harder" as the satellite swings closest to the planet, it sort-of wraps the orbit tighter. The following apoapsis will come a bit later and advance around the planet, as will the periapsis.
Here is a Python simulation run for a satellite in a very elliptical LEO orbit with a periapsis altitude of about 400km and apoapsis altitude of about 32,000 km. I've run it for Earths normal $J_2$, and again for ten times larger $J_2$ to magnify the effect so that each orbit clearly advances. In addition to the advancement you can see that the semimajor axis is slightly smaller for the larger $J_2$ because the average gravitational force is slightly larger.
def deriv(X, t):
x, v = X.reshape(2, -1)
acc0 = -GMe * x * ((x**2).sum())**-1.5
acc2 = -1.5 * GMe * J2 * Re**2 * x * ((x**2).sum())**-2.5
return np.hstack([v, acc0 + acc2])
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
# David Hammen's nice table https://physics.stackexchange.com/a/141981/83380
# See http://www.iag-aig.org/attach/e354a3264d1e420ea0a9920fe762f2a0/51-groten.pdf
# https://en.wikipedia.org/wiki/Geopotential_model#The_deviations_of_Earth.27s_gravitational_field_from_that_of_a_homogeneous_sphere
GMe = 3.98600418E+14 # m^3 s^-2
J2e = 1.08262545E-03 # unitless
Re = 6378136.3 # meters
X0 = np.hstack([6778000.0, 0.0, 0.0, 10000.]) # x, y, vx, vy
time = np.arange(0, 300001, 100)
J2 = J2e # correct J2
answerJ2, info = ODEint(deriv, X0, time, full_output=True)
J2 = 10*J2e # 10x larger J2
answer10xJ2, info = ODEint(deriv, X0, time, full_output=True)
if 1 == 1:
plt.figure()
x, y = answerJ2.T[:2]
plt.plot(x, y, '-b')
x, y = answer10xJ2.T[:2]
plt.plot(x, y, '-r')
plt.plot([0], [0], 'or')
plt.show()