A ''push'' from ''u'' to ''v'' means sending a part of the excess flow into ''u'' on to ''v''. Three conditions must be met for a ''push'' to take place:
:{|
* ''u'' is active, that is <math>\mathrm{excess}(u) > 0</math>. More flow into the node than out of it so far.
*| <math>c(u,v)</math> -is factive || Which means <math>\mathrm{excess}(u,v) > 0</math>. AvailableThere capacityis frommore ''u''flow entering than exiting tothe ''v''vertex.
|-
* <math>\mathrm{height}(u) = \mathrm{height}(v)+1</math>. Can only send to lower node.▼
We| send<math>r(u,v) an> amount0</math> of|| flowThere equalis toa residual edge <math>\min(\mathrm{excess}r(u,v)</math> from ''u'' to ''v'', where <math>r(u,v) = c(u,v) - f(u,v))</math>.
|-
▲*| <math>\mathrm{height}(u) = \mathrm{height}(v)+1</math>.Can|| onlyWe sendhave toa lowerlegal nodelabelling of ''u'' and ''v''.
|}
When we execute the push we send an amount of flow equal to <math>\min(\mathrm{excess}(u), c(u,v)-f(u,v))</math>.