Activation function is a non-linear function. Operation in a neuron without activation function is just a linear function. If we don't put activation function between operation of neurons, then the function "Layer" is useless.
for example if you have two layer network, when you are doing forward-propagation, your output (without activation function) of your first layer will be calculated as:
$O_1 = W_1X+b_1 $
Then your output of your second layer will be:
$O_2 = W_2O_1+b_2 $
If we substitute $O_1$, so the output of your second layer can be calculated as:
$O_2 = W_2(W_1X+b_1)+b_2 $
or simply
$O_2 = W_2W_1X+W_2b_1+b_2 $
As we train neural network to optimize the value of $W$ and $b$ (we train to find the best value of it) so instead of training neural network with two layers, we actually just train a one layer network. From the latter formula we can said $W_2W_1 = W_3$ and $W_2b_1+b_2 = b_3$ so our two layer network is just another linear model:
$O_2 = W_3X+b_3 $
We don't want that, we add layers to get more complex model. That's why we use Activation function that is non-linear function. To prevent our deep model is just become a simple linear function.