The do it yourself resource for homeowners from home improvement professionals.

How to Patch a Hole in the Roof

Your roof may need to be patched after a strong wind sends a tree branch through it. Removing an old satellite dish or vent could also result in a hole which requires a patch. Whatever the cause of your roof damage, you need to finish the job before wet weather strikes. The steps for how to patch a hole in the roof are within your grasp if you possess basic carpentry skills. In this article, the roof repair experts at PJ Fitzpatrick teach you the process step by step.

How to Patch a Hole in the RoofTools and Materials Needed

  • Extension ladder
  • Pry bar
  • Hammer
  • Utility knife
  • Measuring tape
  • Reciprocating saw
  • Liquid nails
  • 2 x 4 lumber
  • Roof decking same thickness as existing deck
  • Tar paper
  • New shingles

How to Patch a Hole in the Roof

  1. Place ladder in stable location, climb on to the roof and locate the hole.
  2. Use a pry bar to lift shingles off of the damaged area. Start with shingles above the hole and work downward.
  3. Pull out all nails with a claw hammer.
  4. Cut the tar paper in the damaged area with a utility knife.
  5. Cut a square or rectangle around the hole with a reciprocating saw. Do not cut into roof rafters. Make sure to remove all damaged decking. You might have to cut out two squares if the damage crosses a rafter.
  6. With the deck edges exposed, measure board thickness to determine the size of replacement decking.
  7. Measure the opening and cut a piece of new decking to fit.
  8. Measure and cut 2 x 4 lumber to build braces across and around the gap. Attach braces to rafters around the edges of the gap with 10-penny nails. Leave edges of each brace exposed around the opening for the patch.
  9. Dry fit the patch and adjust its size if necessary.
  10. Spread liquid nails on the patch and press into place.
  11. Nail the patch to braces with 8-penny nails.
  12. Spread roofing tar over the patch seams.
  13. Cut tar paper to fit over the area. Slide the upper edge beneath the existing tar paper or shingles and overlap the bottom edge by 2 inches.
  14. Nail tar paper with roofing nails.
  15. Start at the bottom of the exposed area when nailing on new shingles.
  16. Put a bit of roofing tar over shingle nails.

Get Help with Roof Repairs Today

A roof with significant damage or rotted decking needs more than just a patch. The roofing experts at PJ Fitzpatrick are here to help and can quickly and affordably repair your roof. Request an estimate today.

Need help with this project?

We have trained professionals that can help.

Contact us today. 1-888-446-6492 Get Estimate

P.J. Fitzpatrick, Inc.

21 Industrial Blvd
New Castle, DE 19720

  • NJ Lic. #13VH10727200
  • DE Lic. #2009603070
  • PA Lic. #PA011323
  • MD Lic. #105494

© 2020 P.J. Fitzpatrick, Inc.

Website by the Prager Microsystems, Inc. Digital Marketing Agency

Live Chat With Us
[gravityform id="20" title="false" description="false"]
<div class='gf_browser_chrome gform_wrapper' id='gform_wrapper_20' ><form method='post' enctype='multipart/form-data' id='gform_20' action='/diy/roof-repair/how-to-patch-a-hole-in-the-roof/'> <div class='gform_body'><ul id='gform_fields_20' class='gform_fields top_label form_sublabel_below description_below'><li id='field_20_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_20_1' >Your Name:<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_20_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_20_4' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_20_4' >Phone Number:<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_phone'><input name='input_4' id='input_20_4' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_20' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_20"]){return false;} window["gf_submitting_20"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_20"]){return false;} window["gf_submitting_20"]=true; jQuery("#gform_20").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_20' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='20' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_20' value='WyJbXSIsIjExY2Q2ODU0YWI0Y2RiZGJiMzBhMmEyNzEwY2IwZDM1Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_20' id='gform_target_page_number_20' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_20' id='gform_source_page_number_20' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 20) {jQuery('#input_20_4').mask('(999) 999-9999').bind('keypress', function(e){if(e.which == 13){jQuery(this).blur();} } );} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [20, 1]) } ); </script>