Skip to main content

Yelp’s Top 100 Places to Eat in Canada 2019



“Where should I eat around here?” “Where should I take my boss or family to impress them?” If you’re wondering where you should be eating right now, you’re not alone, which is why we’re helping you answer those age-old questions with the results of our Top 100 Places to Eat in Canada list.

Yelp’s list of Top 100 Places to Eat in Canada for 2019 honours businesses that rank so highly in the Yelp community’s opinion that they earned the status of “must-try this year.” From cheap eats to $$$$, food stands to upscale dining, this list runs the gamut of dining experiences across the country. Leave it to Yelpers to be in-the-know on the spots you’ve heard buzz about (like the mouthwatering tacos at #15 and Montréal’s L’Avenue at #5), and discover hole-in-the-wall joints the locals would love to keep secret (a deliciously addictive Lebanese hot spot at #1, or the Japanese-Korean fusion burger joint at #44). And that’s the way we like it; a list as quirky and interesting and unique as the Yelp Community itself. Sometimes you want a white tablecloth experience, and sometimes a sandwich on the run hits the spot.

You’re going to want to make a note of these spots, so we made it easy for you. With our Collections feature, you can see the whole list in one place and follow it! To do so, open this link on mobile (make sure to have the Yelp app downloaded!) and hit ‘follow’ once you’ve opened it in the app. Now you’ll always have the top 100 with you.

Did one of your favourites not make the list?  Share your thoughts on the list on social media using #YelpTop100 and tell us what you think. Don’t forget to check out our picks for the top places to eat in the United States!

(Left, top to bottom: #15 Seven Lives Tacos Y Mariscos in Toronto, ON; #5 L’Avenue in Montréal, QC; #95 514 Poutine in Calgary, AB
Right, top to bottom: #44 Fat Ninja Bite in Toronto, ON; #80 The French in Hamilton, ON)

Yelp’s Top 100 Places to Eat in Canada 2019

Businesses that appeared on our 2018 list are marked with ♥

  1. Manoush’eh – Vancouver, BC
  2. Damas – Montréal, QC ♥
  3. Weinkeller – Niagara Falls, ON
  4. Buvette Scott – Québec, QC
  5. L’Avenue – Montréal, QC ♥
  6. Baretto Caffe – Toronto, ON ♥
  7. Ten Foot Henry – Calgary, AB ♥
  8. Steve’s Poke Bar – Surrey, BC
  9. Clementine – Winnipeg, MB
  10. Le Robin Square– Montréal, QC
  11. Casablanca Crepe Taste of Morocco – Vancouver, BC
  12. Chartier – Beaumont, AB
  13. Bouillon Bilk– Montréal, QC
  14. Pai Northern Thai Kitchen – Toronto, ON♥
  15. Seven Lives Tacos Y Mariscos – Toronto, ON ♥
  16. Ma Poule Mouillée – Montréal, QC
  17. Padmanadi Vegetarian Restaurant – Edmonton, AB ♥
  18. Jam Cafe – Victoria, BC ♥
  19. Beach Hill Smokehouse – Toronto, ON
  20. The Rock – Calgary, AB
  21. Richmond Station – Toronto, ON♥
  22. Sushi Wa – Vaughan, ON ♥
  23. Creperie Catherine – Mont-Tremblant, QC
  24. Olive & Gourmando – Montréal, QC
  25. Viana – LaSalle, QC
  26. Pho Ngoc Yen Restaurant – Mississauga, ON ♥
  27. Tasty Indian Bistro – Surrey, BC
  28. Buta Ramen – Halifax, NS
  29. Fishhook – Victoria, BC ♥
  30. BeaverTails Pastry – Ottawa, ON
  31. Hibachi Grill – Pickering, ON ♥
  32. Il Terrazzo Ristorante – Victoria, BC
  33. Alo Restaurant – Toronto, ON ♥
  34. El Nahual – York, ON ♥
  35. GaNaDaRa – Montréal, QC
  36. The Himalayan – Calgary, AB ♥
  37. Southeast Sandwiches – Woodbridge, ON
  38. Fat Ninja Bite – Toronto, ON ♥
  39. Ramen Isshin – Toronto, ON
  40. Pasta da Panza – Laval, QC
  41. Peaked Pies – Whistler, BC
  42. Alumni Sandwich & Liquor Bar – Calgary, AB
  43. Rustle & Still Café – Toronto, ON
  44. Miku – Vancouver, BC♥
  45. Rhubarb Restaurant – Indian Harbour, NS
  46. Le Passé Composé – Montréal, QC ♥
  47. Paris Crepes Cafe – Niagara Falls, ON
  48. Blue Line Diner – Niagara Falls, ON
  49. ALBA Restaurant – Jasper, AB
  50. Zezafoun Syrian Cuisine – Toronto, ON
  51. KINKA IZAKAYA ORIGINAL – Toronto, ON
  52. Workshop Kitchen + Culture – Calgary, AB
  53. Yasu –Toronto, ON♥
  54. Scaramouche Restaurant Pasta Bar & Grill – Toronto, ON♥
  55. The Poké Box – Waterloo, ON
  56. Two Guys Sushi Restaurant – White Rock, BC
  57. Daldongnae – Toronto, ON
  58. Chez Boulay Bistro Boréal – Québec, QC
  59. Sumilicious – Scarborough, ON
  60. OEB Breakfast Co. – Calgary, AB♥
  61. Byblos – Toronto, ON♥
  62. Nouilles de Lan Zhou – Montréal, QC
  63. Adamson Barbecue – Toronto, ON♥
  64. Ramen DanboVancouver, BC
  65. Native Tongues Taqueria
  66. Jardin Nelson – Montréal, QC
  67. Au Pied de Cochon – Montréal, QC
  68. Restaurant Bonaparte – Montréal, QC
  69. La Finca – Montréal, QC
  70. Little Jumbo – Victoria, BC
  71. Miku – Toronto, ON♥
  72. Maison Christian Faure – Montréal, QC
  73. Block Kitchen and Bar –Banff, AB
  74. Burger Bar Crescent – Montréal, QC
  75. Bar George – Montréal, QC
  76. Kingyo – Vancouver, BC
  77. Sushi Omigoto – Mississauga, ON
  78. Happy Clam Cafe & Grill – Cheticamp, NS
  79. Bistro Chouette – Mansonville, QC
  80. The FrenchHamilton, ON
  81. Astera’s Greek Taverna – Nanaimo, BC
  82. Kazu – Montréal, QC
  83. Bombay Choupati – Pierrefonds, QC
  84. Mira – Toronto, ON
  85. So Hyang Korean Cuisine –Vancouver, BC
  86. Le Lapin Sauté –Québec, QC
  87. Régine Café  – Montréal, QC ♥
  88. Wild Thyme – New Westminster, BC♥
  89. Sugo – Toronto, ON
  90. Poutineville – Montréal, QC
  91. Santorini Gyros – Oshawa, ON
  92. Foiegwa – Montréal, QC
  93. Shandhar Hut Indian Cuisine – Chilliwack, BC
  94. Islas Filipino BBQ and Bar – Toronto, ON
  95. 514 Poutine – Canmore, AB
  96. Le Billig – Québec, QC
  97. Banh Mi Boys – Toronto, ON
  98. Green Bites Dumpling & Tea Bar – Brampton, ON
  99. Jacobs & Co. Steakhouse – Toronto, ON ♥
  100. Angelique’s Family Restaurant – Ajax, ON

 

Methodology:

To determine Yelp’s Top 100 Places to Eat for 2019, we looked at the reviews received by businesses in the restaurant and food categories. We considered both the rating and the volume of the reviews, while accounting for the overall volume of reviews in each business’s area so as not to disadvantage businesses in areas with relatively low review volume. Businesses must be primarily a restaurant or place to eat a meal to be included on the list. If a business with multiple locations appears more than once on the list, we keep the highest ranked location.

[gravityform id="4" title="false" ajax="true"]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/news/yelps-top-100-places-to-eat-in-canada-2019/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Email</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>
[gravityform id="4" title="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_4' ><div id='gf_4' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <span class='gform_description'></span> </div><form data-form-name='Newsletter Signup Popup' method='post' enctype='multipart/form-data' target='gform_ajax_frame_4' id='gform_4' action='/news/yelps-top-100-places-to-eat-in-canada-2019/#gf_4' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_4' class='gform_fields top_label form_sublabel_below description_below'><li id="field_4_1" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible gf-email" data-field-class="gf-email" data-js-reload="field_4_1"><label class='gfield_label screen-reader-text' for='input_4_1' >youremail@address.com</label><div class='ginput_container ginput_container_email'> <input name='input_1' id='input_4_1' type='email' value='' class='large' placeholder='youremail@address.com' aria-invalid="false" /> </div></li><li id="field_4_2" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_4_2"><label class='gfield_label' for='input_4_2' >Comments</label><div class='ginput_container'><input name='input_2' id='input_4_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_4_2'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_4' class='gform_button button' value='Submit' onclick='if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_4"]){return false;} if( !jQuery("#gform_4")[0].checkValidity || jQuery("#gform_4")[0].checkValidity()){window["gf_submitting_4"]=true;} jQuery("#gform_4").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=4&amp;title=&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_4' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='4' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_4' value='WyJbXSIsImE0YjFiMmUxY2IxMWVhYTljM2FhNzdkODk4NDUzZmY0Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_4' id='gform_target_page_number_4' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_4' id='gform_source_page_number_4' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_4' id='gform_ajax_frame_4' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script> gform.initializeOnLoaded( function() {gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery('#gform_ajax_frame_4').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_4');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_4').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_4').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_4').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_4').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_4').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_4').val();gformInitSpinner( 4, 'https://blog.yelp.com/wp-content/plugins/gravityforms/images/spinner.svg' );jQuery(document).trigger('gform_page_loaded', [4, current_page]);window['gf_submitting_4'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_4').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_4').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [4]);window['gf_submitting_4'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_4').text());}, 50);}else{jQuery('#gform_4').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [4, current_page]);} );} ); </script>