You can do it in bash too. I have this in my bashrc:
bind '"^[[1;5A": history-search-backward'
bind '"^[[1;5B": history-search-forward'
where ^[ is the escape character. This way, crtl-up goes to previous partial match (and up goes to last command as usual). I use it all the time.