The Function must return a value but in Stored Procedure it is optional. Even a procedure can return zero or n values.
Function can have only input parameters for it whereas procedure can have input or output parameters.
Function can be called from Procedure whereas Procedure cannot be called from a function.