In Model Predictive Control, the enforcement of hard state constraints can be overly conservative or even infeasible, especially in the presence of disturbances. This work presents a soft constrained MPC approach that provides closed- loop stability even for unstable systems. Two types of soft constraints are employed: state constraints along the horizon are relaxed by the introduction of two different types of slack variables and the terminal constraint is softened by moving the target from the origin to a feasible steady-state. The proposed method significantly enlarges the region of attraction and preserves the optimal behavior whenever all state constraints can be enforced. Asymptotic stability of the nominal system under the proposed control law is shown, as well as input-to- state stability of the system under additive disturbances and the robust stability properties are analyzed.