I'm trying to cut holes into a cylinder top. My first step is to create a cylinder. Next I delete the bottom face. Then I solidify it to give it a thickness of .05m.
At this point my object looks like: 
Next I create a circle of diameter 0.2m. I go to edit mode and fill it in. Then I extrude it to make a long cylinder for my cutting tool. Looks like this: 
Now I move the cylinder to overlap with the face of the cylinder: 
Now I select the cylinder and add the Boolean modifier. I select the circle as my object and try to do a Difference operation. If I make the circle invisible, I see a hole cut into the top of the cylinder as I want: 
The problem occurs when I try to Apply the Boolean. No matter if I select Fast or Exact, I get the following:

Instead of a hole cut into the face, I have a hole with an extruded cylinder below the cut.
Why?