You need to define a 100% height for the html and body tags:
html,
body {
height:100%;
}
body {
background:#BAF7C8;
background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0, #BAF7C8),
color-stop(1, #5C93DB)
);
background-image: -o-linear-gradient(top, #BAF7C8 0%, #5C93DB 100%);
background-image: -moz-linear-gradient(top, #BAF7C8 0%, #5C93DB 100%);
background-image: -webkit-linear-gradient(top, #BAF7C8 0%, #5C93DB 100%);
background-image: -ms-linear-gradient(top, #BAF7C8 0%, #5C93DB 100%);
background-image: linear-gradient(to top, #BAF7C8 0%, #5C93DB 100%);
}
(gradient generated from css3factory).
Notice there is a regular background colour fallback as well.
You could generate the gradients automatically with autoprefixer.
JSFiddle
html { height:100% }