http://jsfiddle.net/bSnaG/
In my mind the above example should look like a grey box with #x not going past the edge and #y poking out the b
#x
#y
I think the problem is your height: 100px in the outer div. If you remove this height attribute, do you get the result you're looking for?
Otherwise, I think batwad's probably knocked the nail on the head using three divs.